@medplum/mock 2.0.3 → 2.0.5

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.
Files changed (42) hide show
  1. package/dist/cjs/index.cjs +296 -463
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/cjs/index.min.cjs +1 -1
  4. package/dist/cjs/index.min.cjs.map +1 -1
  5. package/dist/esm/index.min.mjs +1 -1
  6. package/dist/esm/index.min.mjs.map +1 -1
  7. package/dist/esm/index.mjs +295 -461
  8. package/dist/esm/index.mjs.map +1 -1
  9. package/dist/types/client.d.ts +30 -0
  10. package/dist/types/mocks/index.d.ts +0 -1
  11. package/package.json +6 -4
  12. package/tsconfig.build.json +9 -0
  13. package/dist/cjs/client.d.ts +0 -16
  14. package/dist/cjs/index.d.ts +0 -2
  15. package/dist/cjs/mocks/accesspolicy.d.ts +0 -4
  16. package/dist/cjs/mocks/alice.d.ts +0 -7
  17. package/dist/cjs/mocks/bot.d.ts +0 -3
  18. package/dist/cjs/mocks/index.d.ts +0 -9
  19. package/dist/cjs/mocks/questionnaire.d.ts +0 -3
  20. package/dist/cjs/mocks/simpsons.d.ts +0 -23
  21. package/dist/cjs/mocks/smart.d.ts +0 -2
  22. package/dist/cjs/mocks/subscription.d.ts +0 -3
  23. package/dist/cjs/mocks/types.d.ts +0 -81
  24. package/dist/cjs/mocks/valueset.d.ts +0 -2
  25. package/dist/cjs/mocks/workflow.d.ts +0 -10
  26. package/dist/cjs/repo.d.ts +0 -16
  27. package/dist/esm/client.d.ts +0 -16
  28. package/dist/esm/index.d.ts +0 -2
  29. package/dist/esm/mocks/accesspolicy.d.ts +0 -4
  30. package/dist/esm/mocks/alice.d.ts +0 -7
  31. package/dist/esm/mocks/bot.d.ts +0 -3
  32. package/dist/esm/mocks/index.d.ts +0 -9
  33. package/dist/esm/mocks/questionnaire.d.ts +0 -3
  34. package/dist/esm/mocks/simpsons.d.ts +0 -23
  35. package/dist/esm/mocks/smart.d.ts +0 -2
  36. package/dist/esm/mocks/subscription.d.ts +0 -3
  37. package/dist/esm/mocks/types.d.ts +0 -81
  38. package/dist/esm/mocks/valueset.d.ts +0 -2
  39. package/dist/esm/mocks/workflow.d.ts +0 -10
  40. package/dist/esm/repo.d.ts +0 -16
  41. package/dist/types/mocks/types.d.ts +0 -81
  42. package/dist/types/repo.d.ts +0 -16
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../src/mocks/accesspolicy.ts","../../../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/workflow.ts","../../../src/mocks/smart.ts","../../../../node_modules/tslib/tslib.es6.js","../../../src/repo.ts","../../../src/client.ts"],"sourcesContent":["import { AccessPolicy, UserConfiguration, ValueSet } from '@medplum/fhirtypes';\n\nexport const ExampleAccessPolicy: AccessPolicy = {\n resourceType: 'AccessPolicy',\n id: '123',\n name: 'Example Access Policy',\n};\n\nexport const ExampleStatusValueSet: ValueSet = {\n resourceType: 'ValueSet',\n id: 'example-statuses',\n compose: {\n include: [\n {\n concept: [\n { code: 'ORDERED' },\n { code: 'SENT_TO_CUSTOMER' },\n { code: 'SENT_BACK_TO_LAB' },\n { code: 'LAB_PROCESSED' },\n { code: 'LAB_COMPLETE' },\n ],\n },\n ],\n },\n};\n\nexport const ExampleUserConfiguration: UserConfiguration = {\n resourceType: 'UserConfiguration',\n id: '123',\n name: 'Example User Configuration',\n option: [\n {\n id: 'statusValueSet',\n valueString: 'ValueSet/example-statuses',\n },\n ],\n};\n","import { createReference } from '@medplum/core';\nimport { Organization, Practitioner, Schedule, Slot } 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 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://www.medplum.com/img/cdc-femaledoc.png',\n },\n ],\n};\n\nexport const DrAliceSmithPreviousVersion: Practitioner = {\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\nexport const DrAliceSmithSchedule: Schedule = {\n resourceType: 'Schedule',\n id: 'alice-smith-schedule',\n actor: [\n {\n reference: 'Practitioner/123',\n display: 'Dr. Alice Smith',\n },\n ],\n};\n\nexport const DrAliceSmithSlots: Slot[] = (() => {\n const schedule = createReference(DrAliceSmithSchedule);\n const result: Slot[] = [];\n const slotDate = new Date();\n for (let day = 0; day < 60; day++) {\n for (const hour of [9, 10, 11, 13, 14, 15]) {\n slotDate.setHours(hour, 0, 0, 0);\n result.push({\n resourceType: 'Slot',\n id: `slot-${day}-${hour}`,\n start: slotDate.toISOString(),\n schedule,\n });\n }\n slotDate.setDate(slotDate.getDate() + 1);\n }\n return result;\n})();\n","import { Bot, ClientApplication } 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\nexport const ExampleClient: ClientApplication = {\n resourceType: 'ClientApplication',\n id: '123',\n name: 'Test Client',\n};\n","import { Questionnaire, QuestionnaireResponse } from '@medplum/fhirtypes';\n\nexport const ExampleQuestionnaire: Questionnaire = {\n resourceType: 'Questionnaire',\n id: '123',\n name: 'Vitals',\n title: 'Vitals',\n subjectType: ['Patient'],\n item: [\n {\n linkId: '1',\n text: 'First question',\n type: 'string',\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 { createReference } from '@medplum/core';\nimport {\n Address,\n Communication,\n DiagnosticReport,\n Encounter,\n Group,\n Media,\n Observation,\n Patient,\n RelatedPerson,\n ServiceRequest,\n Specimen,\n} from '@medplum/fhirtypes';\nimport { DrAliceSmith } from './alice';\n\nconst SIMPSONS_ADDRESS: Address = {\n use: 'home',\n line: ['742 Evergreen Terrace'],\n city: 'Springfield',\n state: 'IL',\n postalCode: '12345',\n};\n\nexport const LisaSimpson: Patient = {\n resourceType: 'Patient',\n id: 'lisa-simpson',\n meta: {\n versionId: '1',\n lastUpdated: '2020-01-01T12:00:00Z',\n author: {\n reference: 'Practitioner/123',\n },\n },\n birthDate: '1981-05-09',\n name: [\n {\n given: ['Lisa'],\n family: 'Simpson',\n },\n ],\n photo: [\n {\n contentType: 'image/jpeg',\n url: 'https://example.com/picture.jpg',\n },\n ],\n contact: [\n {\n name: { given: ['Homer'], family: 'Simpson' },\n address: {\n use: 'home',\n line: ['742 Evergreen Terrace'],\n city: 'Springfield',\n state: 'IL',\n postalCode: '12345',\n },\n telecom: [\n {\n system: 'phone',\n use: 'home',\n value: '555-1239',\n },\n {\n system: 'email',\n use: 'home',\n value: 'homer@thesimpsons.com',\n },\n ],\n },\n {\n name: { given: ['Marge'], family: 'Simpson' },\n address: {\n use: 'home',\n line: ['742 Evergreen Terrace'],\n city: 'Springfield',\n state: 'IL',\n postalCode: '12345',\n },\n telecom: [\n {\n system: 'phone',\n use: 'mobile',\n value: '139-1928',\n },\n {\n system: 'email',\n use: 'home',\n value: 'marge@thesimpsons.com',\n },\n ],\n },\n ],\n\n telecom: [\n {\n system: 'phone',\n use: 'home',\n value: '555-1239',\n },\n {\n system: 'email',\n use: 'home',\n value: 'lisa@thesimpsons.com',\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 telecom: [\n {\n system: 'phone',\n use: 'home',\n value: '555-1239',\n },\n {\n system: 'email',\n use: 'home',\n value: 'bart@thesimpsons.com',\n },\n ],\n};\n\nexport const HomerLisaRelatedPerson: RelatedPerson = {\n resourceType: 'RelatedPerson',\n id: 'homer-lisa-related-person',\n patient: createReference(LisaSimpson),\n address: [SIMPSONS_ADDRESS],\n telecom: [\n {\n system: 'phone',\n use: 'home',\n value: '555-7334',\n },\n {\n system: 'email',\n use: 'home',\n value: 'chunkylover53@aol.com',\n },\n ],\n relationship: [\n {\n text: 'father',\n coding: [{ system: 'http://terminology.hl7.org/CodeSystem/v3-RoleCode', code: 'FTH', display: 'father' }],\n },\n ],\n};\n\nexport const HomerBartRelatedPerson: RelatedPerson = {\n resourceType: 'RelatedPerson',\n id: 'homer-bart-related-person',\n patient: createReference(BartSimpson),\n address: [SIMPSONS_ADDRESS],\n telecom: [\n {\n system: 'phone',\n use: 'home',\n value: '555-7334',\n },\n {\n system: 'email',\n use: 'home',\n value: 'chunkylover53@aol.com',\n },\n ],\n relationship: [\n {\n text: 'father',\n coding: [{ system: 'http://terminology.hl7.org/CodeSystem/v3-RoleCode', code: 'FTH', display: 'father' }],\n },\n ],\n};\n\nexport const HomerSimpson: Patient = {\n resourceType: 'Patient',\n id: '123',\n gender: 'male',\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 active: true,\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://www.medplum.com/img/homer-simpson.png',\n },\n ],\n telecom: [\n {\n system: 'phone',\n use: 'home',\n value: '555-7334',\n },\n {\n system: 'email',\n use: 'home',\n value: 'chunkylover53@aol.com',\n },\n ],\n address: [\n {\n use: 'home',\n line: ['742 Evergreen Terrace'],\n city: 'Springfield',\n state: 'IL',\n postalCode: '12345',\n },\n ],\n link: [\n { other: createReference(HomerLisaRelatedPerson), type: 'seealso' },\n { other: createReference(HomerBartRelatedPerson), type: 'seealso' },\n ],\n};\n\nexport const MargeSimpson: Patient = {\n resourceType: 'Patient',\n id: 'marge-simpson',\n gender: 'female',\n\n active: true,\n birthDate: '1961-08-23',\n name: [\n {\n given: ['Marge'],\n family: 'Simpson',\n },\n ],\n telecom: [\n {\n system: 'phone',\n use: 'home',\n value: '555-7334',\n },\n {\n system: 'email',\n use: 'home',\n value: 'margesimpson@aol.com',\n },\n ],\n address: [SIMPSONS_ADDRESS],\n};\n\nexport const HomerSimpsonPreviousVersion: Patient = {\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://www.medplum.com/img/homer-simpson.png',\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 HomerCommunication: Communication = {\n resourceType: 'Communication',\n id: '123',\n meta: {\n lastUpdated: '2020-01-01T12:00:00Z',\n author: {\n reference: 'Practitioner/123',\n },\n },\n encounter: createReference(HomerEncounter),\n payload: [\n {\n contentString: 'Hello world',\n },\n ],\n};\n\nexport const HomerMedia: Media = {\n resourceType: 'Media',\n id: '123',\n meta: {\n lastUpdated: '2020-01-01T12:00:00Z',\n author: {\n reference: 'Practitioner/123',\n },\n },\n encounter: createReference(HomerEncounter),\n content: {\n contentType: 'text/plain',\n url: 'https://example.com/test.txt',\n },\n};\n\nexport const HomerObservation1: Observation = {\n resourceType: 'Observation',\n id: '1',\n status: 'final',\n subject: {\n reference: 'Patient/123',\n display: 'Homer Simpson',\n },\n code: {\n text: 'Test 1',\n },\n valueString: 'test',\n};\n\nexport const HomerObservation2: Observation = {\n resourceType: 'Observation',\n id: '2',\n status: 'corrected',\n subject: {\n reference: 'Patient/123',\n display: 'Homer Simpson',\n },\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 status: 'final',\n subject: {\n reference: 'Patient/123',\n display: 'Homer Simpson',\n },\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 status: 'final',\n subject: {\n reference: 'Patient/123',\n display: 'Homer Simpson',\n },\n code: {\n text: 'Test 4',\n },\n valueQuantity: {\n value: 50,\n unit: 'x',\n comparator: '>',\n },\n referenceRange: [\n {\n low: {\n value: 10,\n unit: 'x',\n },\n high: {\n value: 50,\n unit: 'x',\n },\n },\n ],\n interpretation: [\n {\n text: 'HIGH',\n },\n ],\n};\n\nexport const HomerObservation5: Observation = {\n resourceType: 'Observation',\n id: '5',\n status: 'final',\n subject: {\n reference: 'Patient/123',\n display: 'Homer Simpson',\n },\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 id: '6',\n status: 'final',\n subject: {\n reference: 'Patient/123',\n display: 'Homer Simpson',\n },\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 HomerObservation7: Observation = {\n resourceType: 'Observation',\n id: '7',\n status: 'final',\n subject: {\n reference: 'Patient/123',\n display: 'Homer Simpson',\n },\n code: {\n text: 'Test 7',\n },\n component: [\n {\n valueQuantity: {\n value: 1000,\n unit: 'mg/dL',\n system: 'http://unitsofmeasure.org',\n },\n },\n ],\n interpretation: [\n {\n coding: [\n {\n system: 'http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation',\n code: 'HH',\n display: 'Critical high',\n },\n ],\n },\n ],\n};\n\nexport const HomerObservation8: Observation = {\n resourceType: 'Observation',\n id: '8',\n status: 'final',\n subject: {\n reference: 'Patient/123',\n display: 'Homer Simpson',\n },\n code: {\n text: 'Test 8',\n },\n component: [\n {\n valueString: 'REACTIVE',\n },\n ],\n referenceRange: [\n {\n text: 'NEGATIVE',\n },\n ],\n interpretation: [\n {\n coding: [\n {\n system: 'http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation',\n code: 'RR',\n display: 'Reactive',\n },\n ],\n },\n ],\n};\n\nexport const HomerSimpsonSpecimen: Specimen = {\n id: '123',\n resourceType: 'Specimen',\n subject: createReference(HomerSimpson),\n collection: {\n collectedDateTime: '2020-01-01T12:00:00Z',\n },\n note: [\n { text: 'Specimen hemolyzed. Results may be affected.' },\n { text: 'Specimen lipemic. Results may be affected.' },\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 identifier: [\n {\n system: 'https://example.com',\n value: '9001',\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: 'active',\n orderDetail: [\n {\n text: 'ORDERED',\n },\n ],\n specimen: [createReference(HomerSimpsonSpecimen)],\n authoredOn: '2020-01-01T12:00:00Z',\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: createReference(HomerSimpson),\n basedOn: [createReference(HomerServiceRequest)],\n specimen: [createReference(HomerSimpsonSpecimen)],\n resultsInterpreter: [createReference(DrAliceSmith)],\n result: [\n createReference(HomerObservation1),\n createReference(HomerObservation2),\n createReference(HomerObservation3),\n createReference(HomerObservation4),\n createReference(HomerObservation5),\n createReference(HomerObservation6),\n createReference(HomerObservation7),\n createReference(HomerObservation8),\n ],\n};\n\nexport const SimpsonsFamily: Group = {\n resourceType: 'Group',\n id: 'simpsons-family',\n type: 'person',\n actual: true,\n member: [\n { entity: createReference(HomerSimpson) },\n { entity: createReference(MargeSimpson) },\n { entity: createReference(BartSimpson) },\n { entity: createReference(LisaSimpson) },\n ],\n};\n","import { AuditEvent, 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 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","import SearchParameterList from './searchparameters.json';\nimport StructureDefinitionList from './structuredefinitions.json';\n\nexport const GraphQLSchemaResponse = {\n data: {\n StructureDefinitionList,\n SearchParameterList,\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 { createReference, getReferenceString } from '@medplum/core';\nimport { PlanDefinition, Questionnaire, QuestionnaireResponse, RequestGroup, Task } from '@medplum/fhirtypes';\nimport { DrAliceSmith } from './alice';\nimport { HomerSimpson } from './simpsons';\n\nexport const ExampleWorkflowQuestionnaire1: Questionnaire = {\n resourceType: 'Questionnaire',\n id: 'workflow-questionnaire-1',\n name: 'Patient Registration',\n title: 'Patient Registration',\n subjectType: ['Patient'],\n item: [\n {\n linkId: '1',\n text: 'First question',\n type: 'string',\n },\n ],\n};\n\nexport const ExampleWorkflowQuestionnaire2: Questionnaire = {\n resourceType: 'Questionnaire',\n id: 'workflow-questionnaire-2',\n name: 'Surgery History',\n title: 'Surgery History',\n subjectType: ['Patient'],\n item: [\n {\n linkId: '1',\n text: 'First question',\n type: 'string',\n },\n ],\n};\n\nexport const ExampleWorkflowQuestionnaire3: Questionnaire = {\n resourceType: 'Questionnaire',\n id: 'workflow-questionnaire-3',\n name: 'Family Health History',\n title: 'Family Health History',\n subjectType: ['Patient'],\n item: [\n {\n linkId: '1',\n text: 'First question',\n type: 'string',\n },\n ],\n};\n\nexport const ExampleWorkflowPlanDefinition: PlanDefinition = {\n resourceType: 'PlanDefinition',\n id: 'workflow-plan-definition-1',\n title: 'Example Plan Definition',\n action: [\n {\n title: ExampleWorkflowQuestionnaire1.title,\n definitionCanonical: getReferenceString(ExampleWorkflowQuestionnaire1),\n },\n {\n title: ExampleWorkflowQuestionnaire2.title,\n definitionCanonical: getReferenceString(ExampleWorkflowQuestionnaire2),\n },\n {\n title: ExampleWorkflowQuestionnaire3.title,\n definitionCanonical: getReferenceString(ExampleWorkflowQuestionnaire3),\n },\n ],\n};\n\nexport const ExampleWorkflowQuestionnaireResponse1: QuestionnaireResponse = {\n resourceType: 'QuestionnaireResponse',\n id: 'workflow-questionnaire-response-1',\n questionnaire: getReferenceString(ExampleWorkflowQuestionnaire1),\n subject: createReference(HomerSimpson),\n source: createReference(HomerSimpson),\n};\n\n// Based on: http://build.fhir.org/ig/HL7/sdc/Task-example.json.html\nexport const ExampleWorkflowTask1: Task = {\n resourceType: 'Task',\n id: 'workflow-task-1',\n status: 'completed',\n meta: { author: createReference(HomerSimpson) },\n requester: createReference(DrAliceSmith),\n input: [{ valueReference: createReference(ExampleWorkflowQuestionnaire1) }],\n output: [{ valueReference: createReference(ExampleWorkflowQuestionnaireResponse1) }],\n};\n\nexport const ExampleWorkflowTask2: Task = {\n resourceType: 'Task',\n id: 'workflow-task-2',\n status: 'requested',\n meta: { author: createReference(DrAliceSmith) },\n requester: createReference(DrAliceSmith),\n input: [{ valueReference: createReference(ExampleWorkflowQuestionnaire2) }],\n};\n\nexport const ExampleWorkflowTask3: Task = {\n resourceType: 'Task',\n id: 'workflow-task-3',\n status: 'requested',\n meta: { author: createReference(DrAliceSmith) },\n requester: createReference(DrAliceSmith),\n input: [{ valueReference: createReference(ExampleWorkflowQuestionnaire3) }],\n};\n\nexport const ExampleWorkflowRequestGroup: RequestGroup = {\n resourceType: 'RequestGroup',\n id: 'workflow-request-group-1',\n instantiatesCanonical: [getReferenceString(ExampleWorkflowPlanDefinition)],\n status: 'active',\n action: [\n {\n title: ExampleWorkflowQuestionnaire1.title,\n resource: createReference(ExampleWorkflowTask1),\n },\n {\n title: ExampleWorkflowQuestionnaire2.title,\n resource: createReference(ExampleWorkflowTask2),\n },\n {\n title: ExampleWorkflowQuestionnaire3.title,\n resource: createReference(ExampleWorkflowTask3),\n },\n ],\n};\n","import { ClientApplication } from '@medplum/fhirtypes';\n\nexport const ExampleSmartClientApplication: ClientApplication = {\n resourceType: 'ClientApplication',\n id: 'smart-client-app',\n name: 'Inferno Client',\n description: 'Client application used for Inferno ONC compliance testing',\n redirectUri: 'https://inferno.healthit.gov/suites/custom/smart/redirect',\n launchUri: 'https://inferno.healthit.gov/suites/custom/smart/launch',\n};\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.push(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.push(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import { badRequest, deepClone, matchesSearchRequest, notFound, SearchRequest } from '@medplum/core';\nimport { Bundle, BundleEntry, Resource } from '@medplum/fhirtypes';\nimport { applyPatch, Operation } from 'rfc6902';\n\nexport class MemoryRepository {\n readonly #resources: Record<string, Record<string, Resource>>;\n readonly #history: Record<string, Record<string, Resource[]>>;\n\n constructor() {\n this.#resources = {};\n this.#history = {};\n }\n\n createResource<T extends Resource>(resource: T): T {\n const result = deepClone(resource);\n\n if (!result.id) {\n result.id = this.generateId();\n }\n\n if (!result.meta) {\n result.meta = {};\n }\n\n if (!result.meta?.versionId) {\n result.meta.versionId = this.generateId();\n }\n\n if (!result.meta?.lastUpdated) {\n result.meta.lastUpdated = new Date().toISOString();\n }\n\n const { resourceType, id } = result as { resourceType: string; id: string };\n\n if (!(resourceType in this.#resources)) {\n this.#resources[resourceType] = {};\n }\n\n if (!(resourceType in this.#history)) {\n this.#history[resourceType] = {};\n }\n\n if (!(id in this.#history[resourceType])) {\n this.#history[resourceType][id] = [];\n }\n\n this.#resources[resourceType][id] = result;\n this.#history[resourceType][id].push(result);\n return deepClone(result);\n }\n\n updateResource<T extends Resource>(resource: T): T {\n const result = JSON.parse(JSON.stringify(resource)) as T;\n if (result.meta) {\n if (result.meta.versionId) {\n delete result.meta.versionId;\n }\n if (result.meta.lastUpdated) {\n delete result.meta.lastUpdated;\n }\n }\n return this.createResource(result);\n }\n\n async patchResource(resourceType: string, id: string, patch: Operation[]): Promise<Resource> {\n const resource = this.readResource(resourceType, id);\n const patchErrors = applyPatch(resource, patch);\n for (const error of patchErrors) {\n if (error) {\n const message = error.message?.split('\\n')?.[0] || 'JSONPatch error';\n throw badRequest(message);\n }\n }\n return this.updateResource(resource);\n }\n\n readResource<T extends Resource>(resourceType: string, id: string): T {\n const resource = this.#resources?.[resourceType]?.[id] as T | undefined;\n if (!resource) {\n throw notFound;\n }\n return deepClone(resource);\n }\n\n readHistory<T extends Resource>(resourceType: string, id: string): Bundle<T> {\n this.readResource(resourceType, id);\n return {\n resourceType: 'Bundle',\n type: 'history',\n entry: ((this.#history?.[resourceType]?.[id] ?? []) as T[])\n .reverse()\n .map((version) => ({ resource: deepClone(version) })),\n };\n }\n\n readVersion<T extends Resource>(resourceType: string, id: string, versionId: string): T {\n this.readResource(resourceType, id);\n const version = this.#history?.[resourceType]?.[id]?.find((v) => v.meta?.versionId === versionId) as T | undefined;\n if (!version) {\n throw notFound;\n }\n return deepClone(version);\n }\n\n search<T extends Resource>(searchRequest: SearchRequest): Bundle<T> {\n const { resourceType } = searchRequest;\n const resources = this.#resources[resourceType] ?? {};\n const result = Object.values(resources).filter((resource) => matchesSearchRequest(resource, searchRequest));\n return {\n resourceType: 'Bundle',\n type: 'searchset',\n entry: result.map((resource) => ({ resource: deepClone(resource) })) as BundleEntry<T>[],\n total: result.length,\n };\n }\n\n deleteResource(resourceType: string, id: string): void {\n if (this.#resources?.[resourceType]?.[id]) {\n delete this.#resources[resourceType][id];\n }\n }\n\n private generateId(): string {\n // Cross platform random UUID generator\n // Note that this is not intended for production use, but rather for testing\n // This should be replaced when crypto.randomUUID is fully supported\n // https://stackoverflow.com/revisions/2117523/28\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16) | 0;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n }\n}\n","import {\n allOk,\n badRequest,\n getStatus,\n isOk,\n LoginState,\n MedplumClient,\n notFound,\n parseSearchDefinition,\n ProfileResource,\n} from '@medplum/core';\nimport { Binary, Bundle, BundleEntry, OperationOutcome, Resource, UserConfiguration } from '@medplum/fhirtypes';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n/** @ts-ignore */\nimport type { CustomTableLayout, TDocumentDefinitions, TFontDictionary } from 'pdfmake/interfaces';\nimport {\n BartSimpson,\n DifferentOrganization,\n DrAliceSmith,\n DrAliceSmithPreviousVersion,\n DrAliceSmithSchedule,\n DrAliceSmithSlots,\n ExampleBot,\n ExampleClient,\n ExampleQuestionnaire,\n ExampleQuestionnaireResponse,\n ExampleSubscription,\n exampleValueSet,\n GraphQLSchemaResponse,\n HomerCommunication,\n HomerDiagnosticReport,\n HomerEncounter,\n HomerMedia,\n HomerObservation1,\n HomerObservation2,\n HomerObservation3,\n HomerObservation4,\n HomerObservation5,\n HomerObservation6,\n HomerObservation7,\n HomerObservation8,\n HomerServiceRequest,\n HomerSimpson,\n HomerSimpsonPreviousVersion,\n HomerSimpsonSpecimen,\n TestOrganization,\n} from './mocks';\nimport { ExampleAccessPolicy, ExampleStatusValueSet, ExampleUserConfiguration } from './mocks/accesspolicy';\nimport { ExampleSmartClientApplication } from './mocks/smart';\nimport {\n ExampleWorkflowPlanDefinition,\n ExampleWorkflowQuestionnaire1,\n ExampleWorkflowQuestionnaire2,\n ExampleWorkflowQuestionnaire3,\n ExampleWorkflowQuestionnaireResponse1,\n ExampleWorkflowRequestGroup,\n ExampleWorkflowTask1,\n ExampleWorkflowTask2,\n ExampleWorkflowTask3,\n} from './mocks/workflow';\n\nimport { MemoryRepository } from './repo';\n\nexport interface MockClientOptions {\n readonly debug?: boolean;\n}\n\nexport class MockClient extends MedplumClient {\n readonly debug: boolean;\n activeLoginOverride?: LoginState;\n\n constructor(clientOptions?: MockClientOptions) {\n const mockFetchClient = new MockFetchClient(clientOptions?.debug);\n\n super({\n baseUrl: 'https://example.com/',\n clientId: 'my-client-id',\n createPdf: (\n docDefinition: TDocumentDefinitions,\n tableLayouts?: { [name: string]: CustomTableLayout },\n fonts?: TFontDictionary | undefined\n ) => mockFetchClient.mockCreatePdf(docDefinition, tableLayouts, fonts),\n fetch: (url: string, options: any) => {\n return mockFetchClient.mockFetch(url, options);\n },\n });\n this.debug = !!clientOptions?.debug;\n }\n\n clear(): void {\n super.clear();\n this.activeLoginOverride = undefined;\n }\n\n getProfile(): ProfileResource {\n return DrAliceSmith;\n }\n\n getUserConfiguration(): UserConfiguration | undefined {\n return {\n resourceType: 'UserConfiguration',\n menu: [\n {\n title: 'Favorites',\n link: [\n { name: 'Patients', target: '/Patient' },\n { name: 'Active Orders', target: '/ServiceRequest?status=active' },\n { name: 'Completed Orders', target: '/ServiceRequest?status=completed' },\n ],\n },\n {\n title: 'Admin',\n link: [\n { name: 'Project', target: '/admin/project' },\n { name: 'Batch', target: '/batch' },\n ],\n },\n ],\n };\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 async createBinary(\n data: string | File | Blob | Uint8Array,\n filename: string | undefined,\n contentType: string,\n onProgress?: (e: ProgressEvent) => void\n ): Promise<Binary> {\n if (filename?.endsWith('.exe')) {\n return Promise.reject(badRequest('Invalid file type'));\n }\n\n if (onProgress) {\n onProgress({ loaded: 0, lengthComputable: false } as ProgressEvent);\n onProgress({ loaded: 0, total: 100, lengthComputable: true } as ProgressEvent);\n onProgress({ loaded: 100, total: 100, lengthComputable: true } as ProgressEvent);\n }\n\n return {\n resourceType: 'Binary',\n contentType,\n url: 'https://example.com/binary/123',\n };\n }\n}\n\nclass MockFetchClient {\n readonly mockRepo: MemoryRepository;\n\n constructor(readonly debug = false) {\n this.mockRepo = new MemoryRepository();\n this.initMockRepo();\n }\n\n async mockFetch(url: string, options: any): Promise<any> {\n const method = options.method || 'GET';\n const path = url.replace('https://example.com/', '');\n\n if (this.debug) {\n console.log('MockClient', method, path);\n }\n\n const response = await this.mockHandler(method, path, options);\n\n if (this.debug && !response) {\n console.log('MockClient: not found', method, path);\n }\n\n if (this.debug) {\n console.log('MockClient', JSON.stringify(response, null, 2));\n }\n\n if (response?.resourceType === 'OperationOutcome' && !isOk(response)) {\n return Promise.reject(response);\n }\n\n return Promise.resolve({\n ok: true,\n status: response?.resourceType === 'OperationOutcome' ? getStatus(response) : 200,\n blob: () => Promise.resolve(response),\n json: () => Promise.resolve(response),\n });\n }\n\n mockCreatePdf(\n docDefinition: TDocumentDefinitions,\n tableLayouts?: { [name: string]: CustomTableLayout },\n fonts?: TFontDictionary | undefined\n ): Promise<any> {\n if (this.debug) {\n console.log(`Mock Client: createPdf(`);\n console.log(` ${JSON.stringify(docDefinition, null, 2)},`);\n console.log(` ${JSON.stringify(tableLayouts, null, 2)},`);\n console.log(` ${JSON.stringify(fonts, null, 2)});`);\n }\n return Promise.resolve({});\n }\n\n private async mockHandler(method: string, path: string, options: any): Promise<any> {\n if (path.startsWith('admin/')) {\n return this.mockAdminHandler(method, path);\n } else if (path.startsWith('auth/')) {\n return this.mockAuthHandler(method, path, options);\n } else if (path.startsWith('oauth2/')) {\n return this.mockOAuthHandler(method, path, options);\n } else if (path.startsWith('fhir/R4')) {\n return this.mockFhirHandler(method, path, options);\n } else {\n return null;\n }\n }\n\n private mockAdminHandler(_method: string, path: string): any {\n if (path.startsWith('admin/projects/123')) {\n return {\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 { id: '999', profile: { reference: 'Bot/123', display: 'Test Bot' }, role: 'bot' },\n ],\n };\n }\n\n return {\n ok: true,\n };\n }\n\n private mockAuthHandler(method: string, path: string, options: any): any {\n if (path.startsWith('auth/method')) {\n return {};\n }\n\n if (path.startsWith('auth/changepassword')) {\n return this.mockChangePasswordHandler(method, path, options);\n }\n\n if (path.startsWith('auth/login')) {\n return this.mockLoginHandler(method, path, options);\n }\n\n if (path.startsWith('auth/setpassword')) {\n return this.mockSetPasswordHandler(method, path, options);\n }\n\n if (path.startsWith('auth/newuser')) {\n return this.mockNewUserHandler(method, path, options);\n }\n\n if (path.startsWith('auth/newproject') || path.startsWith('auth/newpatient') || path.startsWith('auth/scope')) {\n return {\n login: '123',\n code: 'xyz',\n };\n }\n\n if (path.startsWith('auth/resetpassword')) {\n return this.mockResetPasswordHandler(method, path, options);\n }\n\n if (path.startsWith('auth/me')) {\n return {\n profile: DrAliceSmith,\n security: {\n mfaEnrolled: false,\n sessions: [\n {\n id: '123',\n lastUpdated: new Date().toISOString(),\n authMethod: 'password',\n remoteAddress: '5.5.5.5',\n browser: 'Chrome',\n os: 'Linux',\n },\n {\n id: '456',\n lastUpdated: new Date().toISOString(),\n authMethod: 'password',\n remoteAddress: '6.6.6.6',\n browser: 'Chrome',\n os: 'Android',\n },\n ],\n },\n };\n }\n\n if (path.startsWith('auth/mfa/status')) {\n return {\n enrolled: false,\n enrollUri: 'otpauth://totp/medplum.com:alice.smith%40example',\n };\n }\n\n if (path.startsWith('auth/mfa/enroll')) {\n return allOk;\n }\n\n return null;\n }\n\n private mockChangePasswordHandler(_method: string, _path: string, options: any): any {\n const { body } = options;\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 private mockLoginHandler(_method: string, _path: string, options: any): any {\n const { body } = options;\n const { password } = JSON.parse(body);\n if (password === 'password') {\n return {\n login: '123',\n code: 'xyz',\n };\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 private mockSetPasswordHandler(_method: string, _path: string, options: any): any {\n const { body } = options;\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 private mockNewUserHandler(_method: string, _path: string, options: any): any {\n const { body } = options;\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 private mockResetPasswordHandler(_method: string, _path: string, options: any): any {\n const { body } = options;\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 private mockOAuthHandler(_method: string, path: string, _options: any): any {\n if (path.startsWith('oauth2/token')) {\n return {\n access_token: 'header.' + window.btoa(JSON.stringify({ client_id: 'my-client-id' })) + '.signature',\n };\n }\n\n return null;\n }\n\n private initMockRepo(): void {\n this.mockRepo.createResource(HomerSimpsonPreviousVersion);\n this.mockRepo.createResource(HomerSimpson);\n this.mockRepo.createResource(ExampleAccessPolicy);\n this.mockRepo.createResource(ExampleStatusValueSet);\n this.mockRepo.createResource(ExampleUserConfiguration);\n this.mockRepo.createResource(ExampleBot);\n this.mockRepo.createResource(ExampleClient);\n this.mockRepo.createResource(HomerDiagnosticReport);\n this.mockRepo.createResource(HomerEncounter);\n this.mockRepo.createResource(HomerCommunication);\n this.mockRepo.createResource(HomerMedia);\n this.mockRepo.createResource(HomerObservation1);\n this.mockRepo.createResource(HomerObservation2);\n this.mockRepo.createResource(HomerObservation3);\n this.mockRepo.createResource(HomerObservation4);\n this.mockRepo.createResource(HomerObservation5);\n this.mockRepo.createResource(HomerObservation6);\n this.mockRepo.createResource(HomerObservation7);\n this.mockRepo.createResource(HomerObservation8);\n this.mockRepo.createResource(HomerSimpsonSpecimen);\n this.mockRepo.createResource(TestOrganization);\n this.mockRepo.createResource(DifferentOrganization);\n this.mockRepo.createResource(ExampleQuestionnaire);\n this.mockRepo.createResource(ExampleQuestionnaireResponse);\n this.mockRepo.createResource(HomerServiceRequest);\n this.mockRepo.createResource(ExampleSubscription);\n this.mockRepo.createResource(BartSimpson);\n this.mockRepo.createResource(DrAliceSmithPreviousVersion);\n this.mockRepo.createResource(DrAliceSmith);\n this.mockRepo.createResource(DrAliceSmithSchedule);\n this.mockRepo.createResource(ExampleWorkflowQuestionnaire1);\n this.mockRepo.createResource(ExampleWorkflowQuestionnaire2);\n this.mockRepo.createResource(ExampleWorkflowQuestionnaire3);\n this.mockRepo.createResource(ExampleWorkflowPlanDefinition);\n this.mockRepo.createResource(ExampleWorkflowQuestionnaireResponse1);\n this.mockRepo.createResource(ExampleWorkflowTask1);\n this.mockRepo.createResource(ExampleWorkflowTask2);\n this.mockRepo.createResource(ExampleWorkflowTask3);\n this.mockRepo.createResource(ExampleWorkflowRequestGroup);\n this.mockRepo.createResource(ExampleSmartClientApplication);\n\n DrAliceSmithSlots.forEach((slot) => this.mockRepo.createResource(slot));\n }\n\n private async mockFhirHandler(method: string, url: string, options: any): Promise<Resource> {\n const path = url.includes('?') ? url.substring(0, url.indexOf('?')) : url;\n const match = /fhir\\/R4\\/?([^/]+)?\\/?([^/]+)?\\/?([^/]+)?\\/?([^/]+)?/.exec(path);\n const resourceType = match?.[1];\n const id = match?.[2];\n const operation = match?.[3];\n const versionId = match?.[4];\n if (path.startsWith('fhir/R4/ValueSet/$expand')) {\n return exampleValueSet;\n } else if (path === 'fhir/R4/$graphql') {\n return this.mockFhirGraphqlHandler(method, path, options);\n } else if (path === 'not-found' || id === 'not-found') {\n return notFound;\n } else if (method === 'POST') {\n if (resourceType && id && operation) {\n return allOk;\n } else if (resourceType) {\n return this.mockRepo.createResource(JSON.parse(options.body));\n } else {\n return this.mockFhirBatchHandler(method, path, options);\n }\n } else if (method === 'GET') {\n if (resourceType && id && versionId) {\n return this.mockRepo.readVersion(resourceType, id, versionId);\n } else if (resourceType && id && operation === '_history') {\n return this.mockRepo.readHistory(resourceType, id);\n } else if (resourceType && id === '$csv') {\n return allOk;\n } else if (resourceType && id) {\n return this.mockRepo.readResource(resourceType, id);\n } else if (resourceType) {\n return this.mockRepo.search(parseSearchDefinition(url));\n }\n } else if (method === 'PUT') {\n return this.mockRepo.updateResource(JSON.parse(options.body));\n } else if (method === 'PATCH') {\n if (resourceType && id) {\n return this.mockRepo.patchResource(resourceType, id, JSON.parse(options.body));\n }\n } else if (method === 'DELETE') {\n if (resourceType && id) {\n this.mockRepo.deleteResource(resourceType, id);\n return allOk;\n }\n }\n throw notFound;\n }\n\n private mockFhirGraphqlHandler(_method: string, _path: string, options: any): any {\n const { body } = options;\n if (body.includes('ResourceList: ServiceRequestList')) {\n return {\n data: {\n ResourceList: [\n {\n ...HomerServiceRequest,\n ObservationList: [\n HomerObservation1,\n HomerObservation2,\n HomerObservation3,\n HomerObservation4,\n HomerObservation5,\n HomerObservation6,\n ],\n },\n ],\n },\n };\n }\n return GraphQLSchemaResponse;\n }\n\n private async mockFhirBatchHandler(_method: string, _path: string, options: any): Promise<Bundle> {\n const { body } = options;\n const request = JSON.parse(body) as Bundle;\n let entry: BundleEntry[] | undefined;\n\n if (request.entry) {\n entry = [];\n for (const input of request.entry) {\n entry.push(await this.handleBatchEntry(input));\n }\n }\n\n return {\n resourceType: 'Bundle',\n type: 'batch-response',\n entry,\n };\n }\n\n private async handleBatchEntry(input: BundleEntry): Promise<BundleEntry> {\n try {\n const url = 'fhir/R4/' + input.request?.url;\n const method = input.request?.method as string;\n const resource = await this.mockHandler(method, url, {\n body: input.resource ? JSON.stringify(input.resource) : undefined,\n });\n if (resource?.resourceType === 'OperationOutcome') {\n return {\n resource,\n response: { status: getStatus(resource).toString() },\n };\n } else if (resource) {\n return { resource, response: { status: '200' } };\n } else {\n return { resource: notFound, response: { status: '404' } };\n }\n } catch (err) {\n const outcome = err as OperationOutcome;\n return {\n response: {\n status: getStatus(outcome).toString(),\n outcome,\n },\n };\n }\n }\n}\n"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/mocks/accesspolicy.ts","../../src/mocks/alice.ts","../../src/mocks/bot.ts","../../src/mocks/questionnaire.ts","../../src/mocks/simpsons.ts","../../src/mocks/subscription.ts","../../src/mocks/valueset.ts","../../src/mocks/workflow.ts","../../src/mocks/smart.ts","../../src/client.ts"],"sourcesContent":["import { AccessPolicy, UserConfiguration, ValueSet } from '@medplum/fhirtypes';\n\nexport const ExampleAccessPolicy: AccessPolicy = {\n resourceType: 'AccessPolicy',\n id: '123',\n name: 'Example Access Policy',\n};\n\nexport const ExampleStatusValueSet: ValueSet = {\n resourceType: 'ValueSet',\n id: 'example-statuses',\n compose: {\n include: [\n {\n concept: [\n { code: 'ORDERED' },\n { code: 'SENT_TO_CUSTOMER' },\n { code: 'SENT_BACK_TO_LAB' },\n { code: 'LAB_PROCESSED' },\n { code: 'LAB_COMPLETE' },\n ],\n },\n ],\n },\n};\n\nexport const ExampleUserConfiguration: UserConfiguration = {\n resourceType: 'UserConfiguration',\n id: '123',\n name: 'Example User Configuration',\n option: [\n {\n id: 'statusValueSet',\n valueString: 'ValueSet/example-statuses',\n },\n ],\n};\n","import { createReference } from '@medplum/core';\nimport { Organization, Practitioner, Schedule, Slot } 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 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://www.medplum.com/img/cdc-femaledoc.png',\n },\n ],\n};\n\nexport const DrAliceSmithPreviousVersion: Practitioner = {\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\nexport const DrAliceSmithSchedule: Schedule = {\n resourceType: 'Schedule',\n id: 'alice-smith-schedule',\n actor: [\n {\n reference: 'Practitioner/123',\n display: 'Dr. Alice Smith',\n },\n ],\n};\n\nexport const DrAliceSmithSlots: Slot[] = (() => {\n const schedule = createReference(DrAliceSmithSchedule);\n const result: Slot[] = [];\n const slotDate = new Date();\n for (let day = 0; day < 60; day++) {\n for (const hour of [9, 10, 11, 13, 14, 15]) {\n slotDate.setHours(hour, 0, 0, 0);\n result.push({\n resourceType: 'Slot',\n id: `slot-${day}-${hour}`,\n start: slotDate.toISOString(),\n schedule,\n });\n }\n slotDate.setDate(slotDate.getDate() + 1);\n }\n return result;\n})();\n","import { Bot, ClientApplication } 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\nexport const ExampleClient: ClientApplication = {\n resourceType: 'ClientApplication',\n id: '123',\n name: 'Test Client',\n};\n","import { Questionnaire, QuestionnaireResponse } from '@medplum/fhirtypes';\n\nexport const ExampleQuestionnaire: Questionnaire = {\n resourceType: 'Questionnaire',\n id: '123',\n name: 'Vitals',\n title: 'Vitals',\n subjectType: ['Patient'],\n item: [\n {\n linkId: '1',\n text: 'First question',\n type: 'string',\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 { createReference } from '@medplum/core';\nimport {\n Address,\n Communication,\n DiagnosticReport,\n Encounter,\n Group,\n Media,\n Observation,\n Patient,\n RelatedPerson,\n ServiceRequest,\n Specimen,\n} from '@medplum/fhirtypes';\nimport { DrAliceSmith } from './alice';\n\nconst SIMPSONS_ADDRESS: Address = {\n use: 'home',\n line: ['742 Evergreen Terrace'],\n city: 'Springfield',\n state: 'IL',\n postalCode: '12345',\n};\n\nexport const LisaSimpson: Patient = {\n resourceType: 'Patient',\n id: 'lisa-simpson',\n meta: {\n versionId: '1',\n lastUpdated: '2020-01-01T12:00:00Z',\n author: {\n reference: 'Practitioner/123',\n },\n },\n birthDate: '1981-05-09',\n name: [\n {\n given: ['Lisa'],\n family: 'Simpson',\n },\n ],\n photo: [\n {\n contentType: 'image/jpeg',\n url: 'https://example.com/picture.jpg',\n },\n ],\n contact: [\n {\n name: { given: ['Homer'], family: 'Simpson' },\n address: {\n use: 'home',\n line: ['742 Evergreen Terrace'],\n city: 'Springfield',\n state: 'IL',\n postalCode: '12345',\n },\n telecom: [\n {\n system: 'phone',\n use: 'home',\n value: '555-1239',\n },\n {\n system: 'email',\n use: 'home',\n value: 'homer@thesimpsons.com',\n },\n ],\n },\n {\n name: { given: ['Marge'], family: 'Simpson' },\n address: {\n use: 'home',\n line: ['742 Evergreen Terrace'],\n city: 'Springfield',\n state: 'IL',\n postalCode: '12345',\n },\n telecom: [\n {\n system: 'phone',\n use: 'mobile',\n value: '139-1928',\n },\n {\n system: 'email',\n use: 'home',\n value: 'marge@thesimpsons.com',\n },\n ],\n },\n ],\n\n telecom: [\n {\n system: 'phone',\n use: 'home',\n value: '555-1239',\n },\n {\n system: 'email',\n use: 'home',\n value: 'lisa@thesimpsons.com',\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 telecom: [\n {\n system: 'phone',\n use: 'home',\n value: '555-1239',\n },\n {\n system: 'email',\n use: 'home',\n value: 'bart@thesimpsons.com',\n },\n ],\n};\n\nexport const HomerLisaRelatedPerson: RelatedPerson = {\n resourceType: 'RelatedPerson',\n id: 'homer-lisa-related-person',\n patient: createReference(LisaSimpson),\n address: [SIMPSONS_ADDRESS],\n telecom: [\n {\n system: 'phone',\n use: 'home',\n value: '555-7334',\n },\n {\n system: 'email',\n use: 'home',\n value: 'chunkylover53@aol.com',\n },\n ],\n relationship: [\n {\n text: 'father',\n coding: [{ system: 'http://terminology.hl7.org/CodeSystem/v3-RoleCode', code: 'FTH', display: 'father' }],\n },\n ],\n};\n\nexport const HomerBartRelatedPerson: RelatedPerson = {\n resourceType: 'RelatedPerson',\n id: 'homer-bart-related-person',\n patient: createReference(BartSimpson),\n address: [SIMPSONS_ADDRESS],\n telecom: [\n {\n system: 'phone',\n use: 'home',\n value: '555-7334',\n },\n {\n system: 'email',\n use: 'home',\n value: 'chunkylover53@aol.com',\n },\n ],\n relationship: [\n {\n text: 'father',\n coding: [{ system: 'http://terminology.hl7.org/CodeSystem/v3-RoleCode', code: 'FTH', display: 'father' }],\n },\n ],\n};\n\nexport const HomerSimpson: Patient = {\n resourceType: 'Patient',\n id: '123',\n gender: 'male',\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 active: true,\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://www.medplum.com/img/homer-simpson.png',\n },\n ],\n telecom: [\n {\n system: 'phone',\n use: 'home',\n value: '555-7334',\n },\n {\n system: 'email',\n use: 'home',\n value: 'chunkylover53@aol.com',\n },\n ],\n address: [\n {\n use: 'home',\n line: ['742 Evergreen Terrace'],\n city: 'Springfield',\n state: 'IL',\n postalCode: '12345',\n },\n ],\n link: [\n { other: createReference(HomerLisaRelatedPerson), type: 'seealso' },\n { other: createReference(HomerBartRelatedPerson), type: 'seealso' },\n ],\n};\n\nexport const MargeSimpson: Patient = {\n resourceType: 'Patient',\n id: 'marge-simpson',\n gender: 'female',\n\n active: true,\n birthDate: '1961-08-23',\n name: [\n {\n given: ['Marge'],\n family: 'Simpson',\n },\n ],\n telecom: [\n {\n system: 'phone',\n use: 'home',\n value: '555-7334',\n },\n {\n system: 'email',\n use: 'home',\n value: 'margesimpson@aol.com',\n },\n ],\n address: [SIMPSONS_ADDRESS],\n};\n\nexport const HomerSimpsonPreviousVersion: Patient = {\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://www.medplum.com/img/homer-simpson.png',\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 HomerCommunication: Communication = {\n resourceType: 'Communication',\n id: '123',\n meta: {\n lastUpdated: '2020-01-01T12:00:00Z',\n author: {\n reference: 'Practitioner/123',\n },\n },\n encounter: createReference(HomerEncounter),\n payload: [\n {\n contentString: 'Hello world',\n },\n ],\n};\n\nexport const HomerMedia: Media = {\n resourceType: 'Media',\n id: '123',\n meta: {\n lastUpdated: '2020-01-01T12:00:00Z',\n author: {\n reference: 'Practitioner/123',\n },\n },\n encounter: createReference(HomerEncounter),\n content: {\n contentType: 'text/plain',\n url: 'https://example.com/test.txt',\n },\n};\n\nexport const HomerObservation1: Observation = {\n resourceType: 'Observation',\n id: '1',\n status: 'final',\n subject: {\n reference: 'Patient/123',\n display: 'Homer Simpson',\n },\n code: {\n text: 'Test 1',\n },\n valueString: 'test',\n};\n\nexport const HomerObservation2: Observation = {\n resourceType: 'Observation',\n id: '2',\n status: 'corrected',\n subject: {\n reference: 'Patient/123',\n display: 'Homer Simpson',\n },\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 status: 'final',\n subject: {\n reference: 'Patient/123',\n display: 'Homer Simpson',\n },\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 status: 'final',\n subject: {\n reference: 'Patient/123',\n display: 'Homer Simpson',\n },\n code: {\n text: 'Test 4',\n },\n valueQuantity: {\n value: 50,\n unit: 'x',\n comparator: '>',\n },\n referenceRange: [\n {\n low: {\n value: 10,\n unit: 'x',\n },\n high: {\n value: 50,\n unit: 'x',\n },\n },\n ],\n interpretation: [\n {\n text: 'HIGH',\n },\n ],\n};\n\nexport const HomerObservation5: Observation = {\n resourceType: 'Observation',\n id: '5',\n status: 'final',\n subject: {\n reference: 'Patient/123',\n display: 'Homer Simpson',\n },\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 id: '6',\n status: 'final',\n subject: {\n reference: 'Patient/123',\n display: 'Homer Simpson',\n },\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 HomerObservation7: Observation = {\n resourceType: 'Observation',\n id: '7',\n status: 'final',\n subject: {\n reference: 'Patient/123',\n display: 'Homer Simpson',\n },\n code: {\n text: 'Test 7',\n },\n component: [\n {\n valueQuantity: {\n value: 1000,\n unit: 'mg/dL',\n system: 'http://unitsofmeasure.org',\n },\n },\n ],\n interpretation: [\n {\n coding: [\n {\n system: 'http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation',\n code: 'HH',\n display: 'Critical high',\n },\n ],\n },\n ],\n};\n\nexport const HomerObservation8: Observation = {\n resourceType: 'Observation',\n id: '8',\n status: 'final',\n subject: {\n reference: 'Patient/123',\n display: 'Homer Simpson',\n },\n code: {\n text: 'Test 8',\n },\n component: [\n {\n valueString: 'REACTIVE',\n },\n ],\n referenceRange: [\n {\n text: 'NEGATIVE',\n },\n ],\n interpretation: [\n {\n coding: [\n {\n system: 'http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation',\n code: 'RR',\n display: 'Reactive',\n },\n ],\n },\n ],\n};\n\nexport const HomerSimpsonSpecimen: Specimen = {\n id: '123',\n resourceType: 'Specimen',\n subject: createReference(HomerSimpson),\n collection: {\n collectedDateTime: '2020-01-01T12:00:00Z',\n },\n note: [\n { text: 'Specimen hemolyzed. Results may be affected.' },\n { text: 'Specimen lipemic. Results may be affected.' },\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 identifier: [\n {\n system: 'https://example.com',\n value: '9001',\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: 'active',\n orderDetail: [\n {\n text: 'ORDERED',\n },\n ],\n specimen: [createReference(HomerSimpsonSpecimen)],\n authoredOn: '2020-01-01T12:00:00Z',\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: createReference(HomerSimpson),\n basedOn: [createReference(HomerServiceRequest)],\n specimen: [createReference(HomerSimpsonSpecimen)],\n resultsInterpreter: [createReference(DrAliceSmith)],\n result: [\n createReference(HomerObservation1),\n createReference(HomerObservation2),\n createReference(HomerObservation3),\n createReference(HomerObservation4),\n createReference(HomerObservation5),\n createReference(HomerObservation6),\n createReference(HomerObservation7),\n createReference(HomerObservation8),\n ],\n};\n\nexport const SimpsonsFamily: Group = {\n resourceType: 'Group',\n id: 'simpsons-family',\n type: 'person',\n actual: true,\n member: [\n { entity: createReference(HomerSimpson) },\n { entity: createReference(MargeSimpson) },\n { entity: createReference(BartSimpson) },\n { entity: createReference(LisaSimpson) },\n ],\n};\n","import { AuditEvent, 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 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","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 { createReference, getReferenceString } from '@medplum/core';\nimport { PlanDefinition, Questionnaire, QuestionnaireResponse, RequestGroup, Task } from '@medplum/fhirtypes';\nimport { DrAliceSmith } from './alice';\nimport { HomerSimpson } from './simpsons';\n\nexport const ExampleWorkflowQuestionnaire1: Questionnaire = {\n resourceType: 'Questionnaire',\n id: 'workflow-questionnaire-1',\n name: 'Patient Registration',\n title: 'Patient Registration',\n subjectType: ['Patient'],\n item: [\n {\n linkId: '1',\n text: 'First question',\n type: 'string',\n },\n ],\n};\n\nexport const ExampleWorkflowQuestionnaire2: Questionnaire = {\n resourceType: 'Questionnaire',\n id: 'workflow-questionnaire-2',\n name: 'Surgery History',\n title: 'Surgery History',\n subjectType: ['Patient'],\n item: [\n {\n linkId: '1',\n text: 'First question',\n type: 'string',\n },\n ],\n};\n\nexport const ExampleWorkflowQuestionnaire3: Questionnaire = {\n resourceType: 'Questionnaire',\n id: 'workflow-questionnaire-3',\n name: 'Family Health History',\n title: 'Family Health History',\n subjectType: ['Patient'],\n item: [\n {\n linkId: '1',\n text: 'First question',\n type: 'string',\n },\n ],\n};\n\nexport const ExampleWorkflowPlanDefinition: PlanDefinition = {\n resourceType: 'PlanDefinition',\n id: 'workflow-plan-definition-1',\n title: 'Example Plan Definition',\n action: [\n {\n title: ExampleWorkflowQuestionnaire1.title,\n definitionCanonical: getReferenceString(ExampleWorkflowQuestionnaire1),\n },\n {\n title: ExampleWorkflowQuestionnaire2.title,\n definitionCanonical: getReferenceString(ExampleWorkflowQuestionnaire2),\n },\n {\n title: ExampleWorkflowQuestionnaire3.title,\n definitionCanonical: getReferenceString(ExampleWorkflowQuestionnaire3),\n },\n ],\n};\n\nexport const ExampleWorkflowQuestionnaireResponse1: QuestionnaireResponse = {\n resourceType: 'QuestionnaireResponse',\n id: 'workflow-questionnaire-response-1',\n questionnaire: getReferenceString(ExampleWorkflowQuestionnaire1),\n subject: createReference(HomerSimpson),\n source: createReference(HomerSimpson),\n};\n\n// Based on: http://build.fhir.org/ig/HL7/sdc/Task-example.json.html\nexport const ExampleWorkflowTask1: Task = {\n resourceType: 'Task',\n id: 'workflow-task-1',\n status: 'completed',\n meta: { author: createReference(HomerSimpson) },\n requester: createReference(DrAliceSmith),\n input: [{ valueReference: createReference(ExampleWorkflowQuestionnaire1) }],\n output: [{ valueReference: createReference(ExampleWorkflowQuestionnaireResponse1) }],\n};\n\nexport const ExampleWorkflowTask2: Task = {\n resourceType: 'Task',\n id: 'workflow-task-2',\n status: 'requested',\n meta: { author: createReference(DrAliceSmith) },\n requester: createReference(DrAliceSmith),\n input: [{ valueReference: createReference(ExampleWorkflowQuestionnaire2) }],\n};\n\nexport const ExampleWorkflowTask3: Task = {\n resourceType: 'Task',\n id: 'workflow-task-3',\n status: 'requested',\n meta: { author: createReference(DrAliceSmith) },\n requester: createReference(DrAliceSmith),\n input: [{ valueReference: createReference(ExampleWorkflowQuestionnaire3) }],\n};\n\nexport const ExampleWorkflowRequestGroup: RequestGroup = {\n resourceType: 'RequestGroup',\n id: 'workflow-request-group-1',\n instantiatesCanonical: [getReferenceString(ExampleWorkflowPlanDefinition)],\n status: 'active',\n action: [\n {\n title: ExampleWorkflowQuestionnaire1.title,\n resource: createReference(ExampleWorkflowTask1),\n },\n {\n title: ExampleWorkflowQuestionnaire2.title,\n resource: createReference(ExampleWorkflowTask2),\n },\n {\n title: ExampleWorkflowQuestionnaire3.title,\n resource: createReference(ExampleWorkflowTask3),\n },\n ],\n};\n","import { ClientApplication } from '@medplum/fhirtypes';\n\nexport const ExampleSmartClientApplication: ClientApplication = {\n resourceType: 'ClientApplication',\n id: 'smart-client-app',\n name: 'Inferno Client',\n description: 'Client application used for Inferno ONC compliance testing',\n redirectUri: 'https://inferno.healthit.gov/suites/custom/smart/redirect',\n launchUri: 'https://inferno.healthit.gov/suites/custom/smart/launch',\n};\n","import {\n allOk,\n badRequest,\n getStatus,\n indexStructureDefinition,\n isOk,\n LoginState,\n MedplumClient,\n OperationOutcomeError,\n ProfileResource,\n} from '@medplum/core';\nimport { FhirRequest, FhirRouter, HttpMethod, MemoryRepository } from '@medplum/fhir-router';\nimport { Binary, Resource, SearchParameter, StructureDefinition, UserConfiguration } from '@medplum/fhirtypes';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n/** @ts-ignore */\nimport type { CustomTableLayout, TDocumentDefinitions, TFontDictionary } from 'pdfmake/interfaces';\nimport {\n BartSimpson,\n DifferentOrganization,\n DrAliceSmith,\n DrAliceSmithPreviousVersion,\n DrAliceSmithSchedule,\n DrAliceSmithSlots,\n ExampleBot,\n ExampleClient,\n ExampleQuestionnaire,\n ExampleQuestionnaireResponse,\n ExampleSubscription,\n exampleValueSet,\n HomerCommunication,\n HomerDiagnosticReport,\n HomerEncounter,\n HomerMedia,\n HomerObservation1,\n HomerObservation2,\n HomerObservation3,\n HomerObservation4,\n HomerObservation5,\n HomerObservation6,\n HomerObservation7,\n HomerObservation8,\n HomerServiceRequest,\n HomerSimpson,\n HomerSimpsonPreviousVersion,\n HomerSimpsonSpecimen,\n TestOrganization,\n} from './mocks';\nimport { ExampleAccessPolicy, ExampleStatusValueSet, ExampleUserConfiguration } from './mocks/accesspolicy';\nimport SearchParameterList from './mocks/searchparameters.json';\nimport { ExampleSmartClientApplication } from './mocks/smart';\nimport StructureDefinitionList from './mocks/structuredefinitions.json';\nimport {\n ExampleWorkflowPlanDefinition,\n ExampleWorkflowQuestionnaire1,\n ExampleWorkflowQuestionnaire2,\n ExampleWorkflowQuestionnaire3,\n ExampleWorkflowQuestionnaireResponse1,\n ExampleWorkflowRequestGroup,\n ExampleWorkflowTask1,\n ExampleWorkflowTask2,\n ExampleWorkflowTask3,\n} from './mocks/workflow';\n\nexport interface MockClientOptions {\n readonly debug?: boolean;\n}\n\nexport class MockClient extends MedplumClient {\n readonly router: FhirRouter;\n readonly repo: MemoryRepository;\n readonly client: MockFetchClient;\n readonly debug: boolean;\n activeLoginOverride?: LoginState;\n\n constructor(clientOptions?: MockClientOptions) {\n const router = new FhirRouter();\n const repo = new MemoryRepository();\n const client = new MockFetchClient(router, repo, clientOptions?.debug);\n\n super({\n baseUrl: 'https://example.com/',\n clientId: 'my-client-id',\n createPdf: (\n docDefinition: TDocumentDefinitions,\n tableLayouts?: { [name: string]: CustomTableLayout },\n fonts?: TFontDictionary | undefined\n ) => client.mockCreatePdf(docDefinition, tableLayouts, fonts),\n fetch: (url: string, options: any) => {\n return client.mockFetch(url, options);\n },\n });\n\n this.router = router;\n this.repo = repo;\n this.client = client;\n this.debug = !!clientOptions?.debug;\n }\n\n clear(): void {\n super.clear();\n this.activeLoginOverride = undefined;\n }\n\n getProfile(): ProfileResource {\n return DrAliceSmith;\n }\n\n getUserConfiguration(): UserConfiguration | undefined {\n return {\n resourceType: 'UserConfiguration',\n menu: [\n {\n title: 'Favorites',\n link: [\n { name: 'Patients', target: '/Patient' },\n { name: 'Active Orders', target: '/ServiceRequest?status=active' },\n { name: 'Completed Orders', target: '/ServiceRequest?status=completed' },\n ],\n },\n {\n title: 'Admin',\n link: [\n { name: 'Project', target: '/admin/project' },\n { name: 'Batch', target: '/batch' },\n ],\n },\n ],\n };\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 async createBinary(\n data: string | File | Blob | Uint8Array,\n filename: string | undefined,\n contentType: string,\n onProgress?: (e: ProgressEvent) => void\n ): Promise<Binary> {\n if (filename?.endsWith('.exe')) {\n return Promise.reject(badRequest('Invalid file type'));\n }\n\n if (onProgress) {\n onProgress({ loaded: 0, lengthComputable: false } as ProgressEvent);\n onProgress({ loaded: 0, total: 100, lengthComputable: true } as ProgressEvent);\n onProgress({ loaded: 100, total: 100, lengthComputable: true } as ProgressEvent);\n }\n\n return {\n resourceType: 'Binary',\n contentType,\n url: 'https://example.com/binary/123',\n };\n }\n}\n\nclass MockFetchClient {\n readonly router: FhirRouter;\n readonly repo: MemoryRepository;\n initialized = false;\n initPromise?: Promise<void>;\n\n constructor(router: FhirRouter, repo: MemoryRepository, readonly debug = false) {\n this.router = router;\n this.repo = new MemoryRepository();\n }\n\n async mockFetch(url: string, options: any): Promise<any> {\n if (!this.initialized) {\n if (!this.initPromise) {\n this.initPromise = this.initMockRepo();\n }\n await this.initPromise;\n this.initialized = true;\n }\n\n const method = options.method || 'GET';\n const path = url.replace('https://example.com/', '');\n\n if (this.debug) {\n console.log('MockClient', method, path);\n }\n\n const response = await this.mockHandler(method, path, options);\n\n if (this.debug && !response) {\n console.log('MockClient: not found', method, path);\n }\n\n if (this.debug) {\n console.log('MockClient', JSON.stringify(response, null, 2));\n }\n\n if (response?.resourceType === 'OperationOutcome' && !isOk(response)) {\n return Promise.reject(response);\n }\n\n return Promise.resolve({\n ok: true,\n status: response?.resourceType === 'OperationOutcome' ? getStatus(response) : 200,\n blob: () => Promise.resolve(response),\n json: () => Promise.resolve(response),\n });\n }\n\n mockCreatePdf(\n docDefinition: TDocumentDefinitions,\n tableLayouts?: { [name: string]: CustomTableLayout },\n fonts?: TFontDictionary | undefined\n ): Promise<any> {\n if (this.debug) {\n console.log(`Mock Client: createPdf(`);\n console.log(` ${JSON.stringify(docDefinition, null, 2)},`);\n console.log(` ${JSON.stringify(tableLayouts, null, 2)},`);\n console.log(` ${JSON.stringify(fonts, null, 2)});`);\n }\n return Promise.resolve({});\n }\n\n private async mockHandler(method: HttpMethod, path: string, options: any): Promise<any> {\n if (path.startsWith('admin/')) {\n return this.mockAdminHandler(method, path);\n } else if (path.startsWith('auth/')) {\n return this.mockAuthHandler(method, path, options);\n } else if (path.startsWith('oauth2/')) {\n return this.mockOAuthHandler(method, path, options);\n } else if (path.startsWith('fhir/R4')) {\n return this.mockFhirHandler(method, path, options);\n } else {\n return null;\n }\n }\n\n private mockAdminHandler(_method: string, path: string): any {\n if (path.startsWith('admin/projects/123')) {\n return {\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 { id: '999', profile: { reference: 'Bot/123', display: 'Test Bot' }, role: 'bot' },\n ],\n };\n }\n\n return {\n ok: true,\n };\n }\n\n private mockAuthHandler(method: HttpMethod, path: string, options: any): any {\n if (path.startsWith('auth/method')) {\n return {};\n }\n\n if (path.startsWith('auth/changepassword')) {\n return this.mockChangePasswordHandler(method, path, options);\n }\n\n if (path.startsWith('auth/login')) {\n return this.mockLoginHandler(method, path, options);\n }\n\n if (path.startsWith('auth/setpassword')) {\n return this.mockSetPasswordHandler(method, path, options);\n }\n\n if (path.startsWith('auth/newuser')) {\n return this.mockNewUserHandler(method, path, options);\n }\n\n if (path.startsWith('auth/newproject') || path.startsWith('auth/newpatient') || path.startsWith('auth/scope')) {\n return {\n login: '123',\n code: 'xyz',\n };\n }\n\n if (path.startsWith('auth/resetpassword')) {\n return this.mockResetPasswordHandler(method, path, options);\n }\n\n if (path.startsWith('auth/me')) {\n return {\n profile: DrAliceSmith,\n security: {\n mfaEnrolled: false,\n sessions: [\n {\n id: '123',\n lastUpdated: new Date().toISOString(),\n authMethod: 'password',\n remoteAddress: '5.5.5.5',\n browser: 'Chrome',\n os: 'Linux',\n },\n {\n id: '456',\n lastUpdated: new Date().toISOString(),\n authMethod: 'password',\n remoteAddress: '6.6.6.6',\n browser: 'Chrome',\n os: 'Android',\n },\n ],\n },\n };\n }\n\n if (path.startsWith('auth/mfa/status')) {\n return {\n enrolled: false,\n enrollUri: 'otpauth://totp/medplum.com:alice.smith%40example',\n };\n }\n\n if (path.startsWith('auth/mfa/enroll')) {\n return allOk;\n }\n\n return null;\n }\n\n private mockChangePasswordHandler(_method: string, _path: string, options: any): any {\n const { body } = options;\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 private mockLoginHandler(_method: string, _path: string, options: any): any {\n const { body } = options;\n const { password } = JSON.parse(body);\n if (password === 'password') {\n return {\n login: '123',\n code: 'xyz',\n };\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 private mockSetPasswordHandler(_method: string, _path: string, options: any): any {\n const { body } = options;\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 private mockNewUserHandler(_method: string, _path: string, options: any): any {\n const { body } = options;\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 private mockResetPasswordHandler(_method: string, _path: string, options: any): any {\n const { body } = options;\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 private mockOAuthHandler(_method: string, path: string, _options: any): any {\n if (path.startsWith('oauth2/token')) {\n return {\n access_token: 'header.' + window.btoa(JSON.stringify({ client_id: 'my-client-id' })) + '.signature',\n };\n }\n\n return null;\n }\n\n private async initMockRepo(): Promise<void> {\n const defaultResources = [\n HomerSimpsonPreviousVersion,\n HomerSimpson,\n ExampleAccessPolicy,\n ExampleStatusValueSet,\n ExampleUserConfiguration,\n ExampleBot,\n ExampleClient,\n HomerDiagnosticReport,\n HomerEncounter,\n HomerCommunication,\n HomerMedia,\n HomerObservation1,\n HomerObservation2,\n HomerObservation3,\n HomerObservation4,\n HomerObservation5,\n HomerObservation6,\n HomerObservation7,\n HomerObservation8,\n HomerSimpsonSpecimen,\n TestOrganization,\n DifferentOrganization,\n ExampleQuestionnaire,\n ExampleQuestionnaireResponse,\n HomerServiceRequest,\n ExampleSubscription,\n BartSimpson,\n DrAliceSmithPreviousVersion,\n DrAliceSmith,\n DrAliceSmithSchedule,\n ExampleWorkflowQuestionnaire1,\n ExampleWorkflowQuestionnaire2,\n ExampleWorkflowQuestionnaire3,\n ExampleWorkflowPlanDefinition,\n ExampleWorkflowQuestionnaireResponse1,\n ExampleWorkflowTask1,\n ExampleWorkflowTask2,\n ExampleWorkflowTask3,\n ExampleWorkflowRequestGroup,\n ExampleSmartClientApplication,\n ];\n\n for (const resource of defaultResources) {\n await this.repo.createResource(resource);\n }\n\n for (const structureDefinition of StructureDefinitionList as StructureDefinition[]) {\n indexStructureDefinition(structureDefinition);\n await this.repo.createResource(structureDefinition);\n }\n\n for (const searchParameter of SearchParameterList) {\n await this.repo.createResource(searchParameter as SearchParameter);\n }\n\n DrAliceSmithSlots.forEach((slot) => this.repo.createResource(slot));\n }\n\n private async mockFhirHandler(method: HttpMethod, url: string, options: any): Promise<Resource> {\n if (url.startsWith('fhir/R4/ValueSet/$expand')) {\n return exampleValueSet;\n }\n\n const parsedUrl = new URL(url, 'https://example.com');\n\n let pathname = parsedUrl.pathname;\n if (pathname.includes('fhir/R4')) {\n pathname = pathname.substring(pathname.indexOf('fhir/R4') + 7);\n }\n\n let body = undefined;\n if (options.body) {\n body = JSON.parse(options.body);\n }\n\n const request: FhirRequest = {\n method,\n pathname,\n body,\n params: Object.create(null),\n query: Object.fromEntries(parsedUrl.searchParams),\n };\n\n const result = await this.router.handleRequest(request, this.repo);\n if (result.length === 1) {\n if (!isOk(result[0])) {\n throw new OperationOutcomeError(result[0]);\n }\n return result[0];\n } else {\n return result[1];\n }\n }\n}\n"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
@@ -1,9 +1,15 @@
1
1
  import { LoginState, MedplumClient, ProfileResource } from '@medplum/core';
2
+ import { FhirRouter, MemoryRepository } from '@medplum/fhir-router';
2
3
  import { Binary, UserConfiguration } from '@medplum/fhirtypes';
4
+ /** @ts-ignore */
5
+ import type { CustomTableLayout, TDocumentDefinitions, TFontDictionary } from 'pdfmake/interfaces';
3
6
  export interface MockClientOptions {
4
7
  readonly debug?: boolean;
5
8
  }
6
9
  export declare class MockClient extends MedplumClient {
10
+ readonly router: FhirRouter;
11
+ readonly repo: MemoryRepository;
12
+ readonly client: MockFetchClient;
7
13
  readonly debug: boolean;
8
14
  activeLoginOverride?: LoginState;
9
15
  constructor(clientOptions?: MockClientOptions);
@@ -14,3 +20,27 @@ export declare class MockClient extends MedplumClient {
14
20
  getActiveLogin(): LoginState | undefined;
15
21
  createBinary(data: string | File | Blob | Uint8Array, filename: string | undefined, contentType: string, onProgress?: (e: ProgressEvent) => void): Promise<Binary>;
16
22
  }
23
+ declare class MockFetchClient {
24
+ readonly debug: boolean;
25
+ readonly router: FhirRouter;
26
+ readonly repo: MemoryRepository;
27
+ initialized: boolean;
28
+ initPromise?: Promise<void>;
29
+ constructor(router: FhirRouter, repo: MemoryRepository, debug?: boolean);
30
+ mockFetch(url: string, options: any): Promise<any>;
31
+ mockCreatePdf(docDefinition: TDocumentDefinitions, tableLayouts?: {
32
+ [name: string]: CustomTableLayout;
33
+ }, fonts?: TFontDictionary | undefined): Promise<any>;
34
+ private mockHandler;
35
+ private mockAdminHandler;
36
+ private mockAuthHandler;
37
+ private mockChangePasswordHandler;
38
+ private mockLoginHandler;
39
+ private mockSetPasswordHandler;
40
+ private mockNewUserHandler;
41
+ private mockResetPasswordHandler;
42
+ private mockOAuthHandler;
43
+ private initMockRepo;
44
+ private mockFhirHandler;
45
+ }
46
+ export {};
@@ -4,6 +4,5 @@ export * from './bot';
4
4
  export * from './questionnaire';
5
5
  export * from './simpsons';
6
6
  export * from './subscription';
7
- export * from './types';
8
7
  export * from './valueset';
9
8
  export * from './workflow';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@medplum/mock",
3
- "version": "2.0.3",
3
+ "version": "2.0.5",
4
4
  "description": "Medplum Mock Client",
5
5
  "author": "Medplum <hello@medplum.com>",
6
6
  "license": "Apache-2.0",
@@ -12,14 +12,15 @@
12
12
  },
13
13
  "scripts": {
14
14
  "clean": "rimraf dist",
15
- "build": "npm run clean && tsc && npm run rollup",
16
- "rollup": "rollup --config rollup.config.mjs",
15
+ "build": "npm run clean && tsc --project tsconfig.build.json && rollup --config rollup.config.mjs",
17
16
  "test": "jest"
18
17
  },
19
18
  "dependencies": {
20
19
  "@medplum/core": "*",
21
20
  "@medplum/definitions": "*",
21
+ "@medplum/fhir-router": "*",
22
22
  "@medplum/fhirtypes": "*",
23
+ "dataloader": "2.2.2",
23
24
  "rfc6902": "5.0.1"
24
25
  },
25
26
  "devDependencies": {
@@ -27,11 +28,12 @@
27
28
  },
28
29
  "main": "dist/cjs/index.cjs",
29
30
  "module": "dist/esm/index.mjs",
31
+ "types": "dist/types/index.d.ts",
30
32
  "exports": {
33
+ "types": "./dist/types/index.d.ts",
31
34
  "require": "./dist/cjs/index.cjs",
32
35
  "import": "./dist/esm/index.mjs"
33
36
  },
34
- "types": "dist/types/index.d.ts",
35
37
  "sideEffects": false,
36
38
  "keywords": [
37
39
  "medplum",
@@ -0,0 +1,9 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "outDir": "dist/types",
5
+ "noEmit": false,
6
+ "emitDeclarationOnly": true
7
+ },
8
+ "exclude": ["**/*.test.ts"]
9
+ }