{"version":3,"file":"ngx-epic-fhir-client.mjs","sources":["../../../projects/ngx-epic-fhir-client/src/lib/configuration.ts","../../../projects/ngx-epic-fhir-client/src/lib/encoder.ts","../../../projects/ngx-epic-fhir-client/src/lib/variables.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/adverseEvent.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/allergyIntolerance.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/appointment.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/binary.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/bodyStructure.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/carePlan.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/careTeam.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/communication.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/condition.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/consent.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/coverage.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/createClinicalNotesSTU3.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/createCommunityResourceR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/createPatientEnteredQuestionnairesR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/createPatientSTU3.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/createProblemsR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/createProblemsSTU3.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/createR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/createSTU3.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/createVitalsR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/createVitalsSTU3.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/device.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/deviceRequest.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/deviceUseStatement.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/diagnosticReport.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/documentReference.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/encounter.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/endpoint.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/episodeOfCare.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/expandR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/explanationOfBenefit.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/familyMemberHistory.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/flag.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/goal.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/immunization.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/immunizationRecommendation.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/lastnSocialHistorySTU3.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/list.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/location.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/medication.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/medicationDispense.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/medicationOrder.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/medicationRequest.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/medicationStatement.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/nutritionOrder.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/observation.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/organization.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/patient.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/practitioner.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/practitionerRole.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/procedure.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/procedureRequest.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/provenance.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/questionnaire.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/questionnaireResponse.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readCommunityResourceR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readDSTU2.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readDocumentR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readDocumentSTU3.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readEncounterDiagnosisProblemsSTU3.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readEncounterLevelLongitudinalDSTU2.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readEpisodeR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readGeneratedCCDADSTU2.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readImplantsR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readImplantsandExternalDevicesSTU3.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readOncologyPlanDayR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readOrdersDSTU2.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readOrdersR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readOrdersSTU3.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readOrdersSurgeriesSTU3.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readPatientDSTU2.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readPatientEnteredQuestionnairesR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readPatientFYIR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readPatientFYISTU3.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readPatientR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readPatientSTU3.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readPatientsWithQuestionnairesDueSTU3.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readProblemsDSTU2.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readProblemsR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readQuestionnairesDueR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readRadiologyResultsR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readRadiologyResultsSTU3.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readReasonforVisitR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readReferralR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readResultsDSTU2.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readResultsR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readResultsSTU3.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readSTU3.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readSurgicalHistoryR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readToothR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readVerifiedOrdersR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readVerifiedOrdersSTU3.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readVitalsDSTU2.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readVitalsR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/readVitalsSTU3.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/relatedPerson.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/requestGroup.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/researchStudy.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/researchSubject.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/schedule.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchCodeStatusR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchCommunityResourceR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchDSTU2.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchDocumentSTU3.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchEncounterDiagnosisProblemsSTU3.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchEncounterLevelLongitudinalDSTU2.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchGeneratedCCDADSTU2.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchImplantsR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchImplantsandExternalDevicesSTU3.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchInfectionSTU3.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchIsolationR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchLongitudinalR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchMedicationsR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchOncologyPlanDayR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchOrdersDSTU2.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchOrdersR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchOrdersSTU3.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchOrdersSurgeriesSTU3.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchPatientDSTU2.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchPatientEnteredQuestionnairesR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchPatientR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchPatientSTU3.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchPatientsWithQuestionnairesDueSTU3.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchProblemsDSTU2.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchQuestionnairesDueR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchRadiologyResultsR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchRadiologyResultsSTU3.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchReasonforVisitR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchResultsDSTU2.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchResultsR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchResultsSTU3.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchSTU3.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchSurgicalHistoryR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchToothR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchVerifiedOrdersR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchVerifiedOrdersSTU3.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchVitalsDSTU2.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchVitalsR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/searchVitalsSTU3.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/serviceRequest.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/slot.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/specimen.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/substance.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/task.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/updateCommunityResourceR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/updateLDAWR4.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/updateLDAWSTU3.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/api/valueSet.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/services/localStorage.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/services/oauth.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/services/modal.service.ts","../../../projects/ngx-epic-fhir-client/src/lib/app-initializer.ts","../../../projects/ngx-epic-fhir-client/src/lib/components/non-embedded-auth-modal/non-embedded-auth-modal.component.ts","../../../projects/ngx-epic-fhir-client/src/lib/components/non-embedded-auth-modal/non-embedded-auth-modal.component.html","../../../projects/ngx-epic-fhir-client/src/lib/api.module.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/address.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/allergyIntoleranceSTU3Meta.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/appointmentSTU3Meta.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/binaryDSTU2.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/binaryR4.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/binarySTU3.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/bundleEndpointDSTU2.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/bundleEndpointR4.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/canonical.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/coding.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/conditionSTU3Meta.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/consentSTU3Meta.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/coverageSTU3Meta.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/deviceR4DeviceName.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/deviceR4UdiCarrier.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/deviceR4Version.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/deviceRequestSTU3Meta.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/deviceSTU3Meta.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/deviceSTU3Udi.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/deviceUseStatementSTU3Meta.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/diagnosticReportR4PresentedForm.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/documentReferenceDSTU2Attachment.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/documentReferenceSTU3Attachment.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/documentReferenceSTU3Meta.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/encounterSTU3Meta.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/extension.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/immunizationDSTU2DoseQuantity.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/immunizationRecommendationSTU3Meta.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/immunizationSTU3Meta.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/medicationDispenseR4DoseAndRate.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/medicationDispenseSTU3Meta.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/medicationOrderDSTU2DoseQuantity.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/medicationOrderDSTU2DoseRange.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/medicationOrderDSTU2TimingRepeat.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/medicationRequestR4Substitution.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/medicationRequestSTU3Substitution.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/medicationSTU3Meta.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/medicationStatementSTU3Meta.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/nutritionOrderSTU3Meta.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/observationSTU3Meta.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/organizationSTU3Meta.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/patientDSTU2Name.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/patientDSTU2Telecom.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/patientR4Name1.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/patientR4Telecom.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/patientSTU3Meta.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/practitionerR4Photo.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/practitionerR4Telecom.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/practitionerRoleSTU3Meta.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/practitionerSTU3Meta.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/procedureRequestSTU3Meta.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/procedureSTU3Meta.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/questionnaireResponseR4Answer.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/researchStudyR4Arm.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/specimenSTU3Meta.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/uri.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/valueSetR4ExpansionContains.ts","../../../projects/ngx-epic-fhir-client/src/lib/model/valueSetR4ExpansionParameter.ts","../../../projects/ngx-epic-fhir-client/src/public-api.ts","../../../projects/ngx-epic-fhir-client/src/ngx-epic-fhir-client.ts"],"sourcesContent":["export interface ConfigurationParameters {\n  apiKeys?: { [key: string]: string };\n  username?: string;\n  password?: string;\n  accessToken?: string | (() => string);\n  basePath?: string;\n  withCredentials?: boolean;\n  issUrl?: string;\n  launchCode?: string;\n  epicClientId: string;\n  redirectUri: string;\n  authCode?: string;\n  authCodeState?: string;\n}\n\nexport class Configuration {\n  apiKeys?: { [key: string]: string };\n  username?: string;\n  password?: string;\n  accessToken?: string | (() => string);\n  basePath?: string;\n  withCredentials?: boolean;\n  issUrl?: string;\n  launchCode?: string;\n  epicClientId: string;\n  redirectUri: string;\n  authCode?: string;\n  authCodeState?: string;\n\n  constructor(configurationParameters: ConfigurationParameters = {} as any) {\n    this.apiKeys = configurationParameters.apiKeys;\n    this.username = configurationParameters.username;\n    this.password = configurationParameters.password;\n    this.accessToken = configurationParameters.accessToken;\n    this.basePath = configurationParameters.basePath;\n    this.withCredentials = configurationParameters.withCredentials;\n    this.issUrl = configurationParameters.issUrl;\n    this.launchCode = configurationParameters.launchCode;\n    this.epicClientId = configurationParameters.epicClientId;\n    this.redirectUri = configurationParameters.redirectUri;\n    this.authCode = configurationParameters.authCode;\n    this.authCodeState = configurationParameters.authCodeState;\n  }\n\n  /**\n   * Select the correct content-type to use for a request.\n   * Uses {@link Configuration#isJsonMime} to determine the correct content-type.\n   * If no content type is found return the first found type if the contentTypes is not empty\n   *\n   * @param contentTypes - the array of content types that are available for selection\n   * @returns the selected content-type or <code>undefined</code> if no selection could be made.\n   */\n\n  public selectHeaderContentType(contentTypes: string[]): string | undefined {\n    if (contentTypes.length == 0) {\n      return undefined;\n    }\n\n    let type = contentTypes.find((x) => this.isJsonMime(x));\n    if (type === undefined) {\n      return contentTypes[0];\n    }\n    return type;\n  }\n\n  /**\n   * Select the correct accept content-type to use for a request.\n   * Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.\n   * If no content type is found return the first found type if the contentTypes is not empty\n   *\n   * @param accepts - the array of content types that are available for selection.\n   * @returns the selected content-type or <code>undefined</code> if no selection could be made.\n   */\n\n  public selectHeaderAccept(accepts: string[]): string | undefined {\n    if (accepts.length == 0) {\n      return undefined;\n    }\n\n    let type = accepts.find((x) => this.isJsonMime(x));\n    if (type === undefined) {\n      return accepts[0];\n    }\n    return type;\n  }\n\n  /**\n   * Check if the given MIME is a JSON MIME.\n   * JSON MIME examples:\n   *   application/json\n   *   application/json; charset=UTF8\n   *   APPLICATION/JSON\n   *   application/vnd.company+json\n   *\n   * @param mime - MIME (Multipurpose Internet Mail Extensions)\n   * @return True if the given MIME is JSON, false otherwise.\n   */\n\n  public isJsonMime(mime: string): boolean {\n    const jsonMime = new RegExp(\n      '^(application/json|[^;/ \\t]+/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$',\n      'i'\n    );\n    return (\n      mime != null &&\n      (jsonMime.test(mime) ||\n        mime.toLowerCase() === 'application/json-patch+json')\n    );\n  }\n}\n","import { HttpUrlEncodingCodec } from '@angular/common/http';\n\n/**\n * CustomHttpUrlEncodingCodec\n * Fix plus sign (+) not encoding, so sent as blank space\n * See: https://github.com/angular/angular/issues/11058#issuecomment-247367318\n */\nexport class CustomHttpUrlEncodingCodec extends HttpUrlEncodingCodec {\n  override encodeKey(k: string): string {\n    k = super.encodeKey(k);\n    return k.replace(/\\+/gi, '%2B');\n  }\n  override encodeValue(v: string): string {\n    v = super.encodeValue(v);\n    return v.replace(/\\+/gi, '%2B');\n  }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const BASE_PATH = new InjectionToken<string>('basePath');\nexport const TOKEN_STORAGE_KEY = 'epicOauthToken';\nexport const BASE_URL_STORAGE_KEY = 'epicBaseUrlToken';\nexport const COLLECTION_FORMATS = {\n  csv: ',',\n  tsv: '   ',\n  ssv: ' ',\n  pipes: '|',\n};\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { AdverseEventR4 } from '../model/adverseEventR4';\nimport { BundleAdverseEventR4 } from '../model/bundleAdverseEventR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class AdverseEventService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The Adverse Event FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public adverseEventReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<AdverseEventR4>;\n  public adverseEventReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<AdverseEventR4>>;\n  public adverseEventReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<AdverseEventR4>>;\n  public adverseEventReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling adverseEventReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<AdverseEventR4>(\n      'get',\n      `${this.basePath}/R4/AdverseEvent/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param study A ResearchStudy FHIR ID.\n   * @param subject A Patient FHIR ID.\n   * @param seriousness &lt;p&gt;Seriousness of the event. Possible values are:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Serious&lt;/li&gt; &lt;li&gt;Non-Serious&lt;/li&gt; &lt;/ul&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public adverseEventSearchR4(\n    study: string,\n    subject: string,\n    seriousness?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleAdverseEventR4>;\n  public adverseEventSearchR4(\n    study: string,\n    subject: string,\n    seriousness?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleAdverseEventR4>>;\n  public adverseEventSearchR4(\n    study: string,\n    subject: string,\n    seriousness?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleAdverseEventR4>>;\n  public adverseEventSearchR4(\n    study: string,\n    subject: string,\n    seriousness?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (study === null || study === undefined) {\n      throw new Error(\n        'Required parameter study was null or undefined when calling adverseEventSearchR4.'\n      );\n    }\n\n    if (subject === null || subject === undefined) {\n      throw new Error(\n        'Required parameter subject was null or undefined when calling adverseEventSearchR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (seriousness !== undefined && seriousness !== null) {\n      queryParameters = queryParameters.set('seriousness', <any>seriousness);\n    }\n    if (study !== undefined && study !== null) {\n      queryParameters = queryParameters.set('study', <any>study);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleAdverseEventR4>(\n      'get',\n      `${this.basePath}/R4/AdverseEvent`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { AllergyIntoleranceDSTU2 } from '../model/allergyIntoleranceDSTU2';\nimport { AllergyIntoleranceR4 } from '../model/allergyIntoleranceR4';\nimport { AllergyIntoleranceSTU3 } from '../model/allergyIntoleranceSTU3';\nimport { BundleAllergyIntoleranceDSTU2 } from '../model/bundleAllergyIntoleranceDSTU2';\nimport { BundleAllergyIntoleranceR4 } from '../model/bundleAllergyIntoleranceR4';\nimport { BundleAllergyIntoleranceSTU3 } from '../model/bundleAllergyIntoleranceSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class AllergyIntoleranceService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param body payload\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public allergyIntoleranceCreateR4(\n    body: AllergyIntoleranceR4,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<AllergyIntoleranceR4>;\n  public allergyIntoleranceCreateR4(\n    body: AllergyIntoleranceR4,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<AllergyIntoleranceR4>>;\n  public allergyIntoleranceCreateR4(\n    body: AllergyIntoleranceR4,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<AllergyIntoleranceR4>>;\n  public allergyIntoleranceCreateR4(\n    body: AllergyIntoleranceR4,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (body === null || body === undefined) {\n      throw new Error(\n        'Required parameter body was null or undefined when calling allergyIntoleranceCreateR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = ['application/json'];\n    const httpContentTypeSelected: string | undefined =\n      this.configuration.selectHeaderContentType(consumes);\n    if (httpContentTypeSelected != undefined) {\n      headers = headers.set('Content-Type', httpContentTypeSelected);\n    }\n\n    return this.httpClient.request<AllergyIntoleranceR4>(\n      'post',\n      `${this.basePath}/R4/AllergyIntolerance`,\n      {\n        body: body,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param body payload\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public allergyIntoleranceCreateSTU3(\n    body: AllergyIntoleranceSTU3,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<AllergyIntoleranceSTU3>;\n  public allergyIntoleranceCreateSTU3(\n    body: AllergyIntoleranceSTU3,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<AllergyIntoleranceSTU3>>;\n  public allergyIntoleranceCreateSTU3(\n    body: AllergyIntoleranceSTU3,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<AllergyIntoleranceSTU3>>;\n  public allergyIntoleranceCreateSTU3(\n    body: AllergyIntoleranceSTU3,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (body === null || body === undefined) {\n      throw new Error(\n        'Required parameter body was null or undefined when calling allergyIntoleranceCreateSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = ['application/json'];\n    const httpContentTypeSelected: string | undefined =\n      this.configuration.selectHeaderContentType(consumes);\n    if (httpContentTypeSelected != undefined) {\n      headers = headers.set('Content-Type', httpContentTypeSelected);\n    }\n\n    return this.httpClient.request<AllergyIntoleranceSTU3>(\n      'post',\n      `${this.basePath}/STU3/AllergyIntolerance`,\n      {\n        body: body,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The AllergyIntolerance FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public allergyIntoleranceReadDSTU2(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<AllergyIntoleranceDSTU2>;\n  public allergyIntoleranceReadDSTU2(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<AllergyIntoleranceDSTU2>>;\n  public allergyIntoleranceReadDSTU2(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<AllergyIntoleranceDSTU2>>;\n  public allergyIntoleranceReadDSTU2(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling allergyIntoleranceReadDSTU2.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<AllergyIntoleranceDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/AllergyIntolerance/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The AllergyIntolerance FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public allergyIntoleranceReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<AllergyIntoleranceR4>;\n  public allergyIntoleranceReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<AllergyIntoleranceR4>>;\n  public allergyIntoleranceReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<AllergyIntoleranceR4>>;\n  public allergyIntoleranceReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling allergyIntoleranceReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<AllergyIntoleranceR4>(\n      'get',\n      `${this.basePath}/R4/AllergyIntolerance/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The AllergyIntolerance FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public allergyIntoleranceReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<AllergyIntoleranceSTU3>;\n  public allergyIntoleranceReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<AllergyIntoleranceSTU3>>;\n  public allergyIntoleranceReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<AllergyIntoleranceSTU3>>;\n  public allergyIntoleranceReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling allergyIntoleranceReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<AllergyIntoleranceSTU3>(\n      'get',\n      `${this.basePath}/STU3/AllergyIntolerance/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient Reference to a patient resource.\n   * @param subject Reference to a patient resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public allergyIntoleranceSearchDSTU2(\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleAllergyIntoleranceDSTU2>;\n  public allergyIntoleranceSearchDSTU2(\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleAllergyIntoleranceDSTU2>>;\n  public allergyIntoleranceSearchDSTU2(\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleAllergyIntoleranceDSTU2>>;\n  public allergyIntoleranceSearchDSTU2(\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleAllergyIntoleranceDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/AllergyIntolerance`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient Reference to a patient resource.\n   * @param clinicalStatus &lt;p&gt;The current status of the allergy. Only \\&quot;active\\&quot; is accepted. &lt;p&gt;Starting in the August 2021 version of Epic, this parameter is no longer required, and if is not specified, both active and inactive/resolved allergies are returned.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public allergyIntoleranceSearchR4(\n    patient: string,\n    clinicalStatus?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleAllergyIntoleranceR4>;\n  public allergyIntoleranceSearchR4(\n    patient: string,\n    clinicalStatus?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleAllergyIntoleranceR4>>;\n  public allergyIntoleranceSearchR4(\n    patient: string,\n    clinicalStatus?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleAllergyIntoleranceR4>>;\n  public allergyIntoleranceSearchR4(\n    patient: string,\n    clinicalStatus?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling allergyIntoleranceSearchR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (clinicalStatus !== undefined && clinicalStatus !== null) {\n      queryParameters = queryParameters.set(\n        'clinical-status',\n        <any>clinicalStatus\n      );\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleAllergyIntoleranceR4>(\n      'get',\n      `${this.basePath}/R4/AllergyIntolerance`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient Reference to a patient resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public allergyIntoleranceSearchSTU3(\n    patient: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleAllergyIntoleranceSTU3>;\n  public allergyIntoleranceSearchSTU3(\n    patient: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleAllergyIntoleranceSTU3>>;\n  public allergyIntoleranceSearchSTU3(\n    patient: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleAllergyIntoleranceSTU3>>;\n  public allergyIntoleranceSearchSTU3(\n    patient: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling allergyIntoleranceSearchSTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleAllergyIntoleranceSTU3>(\n      'get',\n      `${this.basePath}/STU3/AllergyIntolerance`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { AppointmentSTU3 } from '../model/appointmentSTU3';\nimport { BundleAppointmentSTU3 } from '../model/bundleAppointmentSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class AppointmentService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR identifier for an Appointment resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public appointmentReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<AppointmentSTU3>;\n  public appointmentReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<AppointmentSTU3>>;\n  public appointmentReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<AppointmentSTU3>>;\n  public appointmentReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling appointmentReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<AppointmentSTU3>(\n      'get',\n      `${this.basePath}/STU3/Appointment/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient Reference to the Patient resource.\n   * @param date Appointment date.\n   * @param identifier Appointment identifier (encounter CSN).\n   * @param status Appointment status. Supported values include: &lt;ul&gt; &lt;li&gt;booked&lt;/li&gt; &lt;li&gt;fulfilled&lt;/li&gt; &lt;li&gt;cancelled&lt;/li&gt; &lt;li&gt;noshow&lt;/li&gt; &lt;li&gt;arrived&lt;/li&gt; &lt;li&gt;proposed&lt;/li&gt; &lt;/ul&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public appointmentSearchSTU3(\n    patient: string,\n    date?: string,\n    identifier?: string,\n    status?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleAppointmentSTU3>;\n  public appointmentSearchSTU3(\n    patient: string,\n    date?: string,\n    identifier?: string,\n    status?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleAppointmentSTU3>>;\n  public appointmentSearchSTU3(\n    patient: string,\n    date?: string,\n    identifier?: string,\n    status?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleAppointmentSTU3>>;\n  public appointmentSearchSTU3(\n    patient: string,\n    date?: string,\n    identifier?: string,\n    status?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling appointmentSearchSTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n    if (identifier !== undefined && identifier !== null) {\n      queryParameters = queryParameters.set('identifier', <any>identifier);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleAppointmentSTU3>(\n      'get',\n      `${this.basePath}/STU3/Appointment`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BinaryDSTU2 } from '../model/binaryDSTU2';\nimport { BinaryR4 } from '../model/binaryR4';\nimport { BinarySTU3 } from '../model/binarySTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class BinaryService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID &lt;p&gt;The FHIR ID.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public binaryReadGeneratedCCDADSTU2(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BinaryDSTU2>;\n  public binaryReadGeneratedCCDADSTU2(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BinaryDSTU2>>;\n  public binaryReadGeneratedCCDADSTU2(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BinaryDSTU2>>;\n  public binaryReadGeneratedCCDADSTU2(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling binaryReadGeneratedCCDADSTU2.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BinaryDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Binary/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID &lt;p&gt;The Binary FHIR ID.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public binaryReadRadiologyResultsR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BinaryR4>;\n  public binaryReadRadiologyResultsR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BinaryR4>>;\n  public binaryReadRadiologyResultsR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BinaryR4>>;\n  public binaryReadRadiologyResultsR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling binaryReadRadiologyResultsR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BinaryR4>(\n      'get',\n      `${this.basePath}/R4/Binary/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The Binary FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public binaryReadRadiologyResultsSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BinarySTU3>;\n  public binaryReadRadiologyResultsSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BinarySTU3>>;\n  public binaryReadRadiologyResultsSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BinarySTU3>>;\n  public binaryReadRadiologyResultsSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling binaryReadRadiologyResultsSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BinarySTU3>(\n      'get',\n      `${this.basePath}/STU3/Binary/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BodyStructureR4 } from '../model/bodyStructureR4';\nimport { BundleBodyStructureR4 } from '../model/bundleBodyStructureR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class BodyStructureService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID BodyStructure identifier.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public bodyStructureReadToothR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BodyStructureR4>;\n  public bodyStructureReadToothR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BodyStructureR4>>;\n  public bodyStructureReadToothR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BodyStructureR4>>;\n  public bodyStructureReadToothR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling bodyStructureReadToothR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BodyStructureR4>(\n      'get',\n      `${this.basePath}/R4/BodyStructure/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param location Accepts a string for a specific tooth in the patient’s mouth. Format: “[Notation OID]|[tooth ID]”, where “Notation OID” is the OID matching the tooth notation system used to communicate the tooth ID. May send multiple entries separated by commas. Supported notations are Universal (94010), FDI (94011) and Palmer (94013). Ex. “urn:oid:1.2.840.114350.1.13.861.1.7.3.866976.94010|32”\n   * @param morphology Points a search to the correct subresource of tooth. Either “teeth” or “302214001” are accepted. These values are functionally equivalent.\n   * @param patient The patient to search for.\n   * @param subject The patient to search for.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public bodyStructureSearchToothR4(\n    location?: string,\n    morphology?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleBodyStructureR4>;\n  public bodyStructureSearchToothR4(\n    location?: string,\n    morphology?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleBodyStructureR4>>;\n  public bodyStructureSearchToothR4(\n    location?: string,\n    morphology?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleBodyStructureR4>>;\n  public bodyStructureSearchToothR4(\n    location?: string,\n    morphology?: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (location !== undefined && location !== null) {\n      queryParameters = queryParameters.set('location', <any>location);\n    }\n    if (morphology !== undefined && morphology !== null) {\n      queryParameters = queryParameters.set('morphology', <any>morphology);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleBodyStructureR4>(\n      'get',\n      `${this.basePath}/R4/BodyStructure`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleCarePlanDSTU2 } from '../model/bundleCarePlanDSTU2';\nimport { BundleCarePlanR4 } from '../model/bundleCarePlanR4';\nimport { CarePlanDSTU2 } from '../model/carePlanDSTU2';\nimport { CarePlanR4 } from '../model/carePlanR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class CarePlanService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The CarePlan FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public carePlanReadEncounterLevelLongitudinalDSTU2(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<CarePlanDSTU2>;\n  public carePlanReadEncounterLevelLongitudinalDSTU2(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<CarePlanDSTU2>>;\n  public carePlanReadEncounterLevelLongitudinalDSTU2(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<CarePlanDSTU2>>;\n  public carePlanReadEncounterLevelLongitudinalDSTU2(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling carePlanReadEncounterLevelLongitudinalDSTU2.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<CarePlanDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/CarePlan/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR identifier for a CarePlan resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public carePlanReadQuestionnairesDueR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<CarePlanR4>;\n  public carePlanReadQuestionnairesDueR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<CarePlanR4>>;\n  public carePlanReadQuestionnairesDueR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<CarePlanR4>>;\n  public carePlanReadQuestionnairesDueR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling carePlanReadQuestionnairesDueR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<CarePlanR4>(\n      'get',\n      `${this.basePath}/R4/CarePlan/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param id A parameter\n   * @param category &lt;p&gt;Further refine which CarePlan resources are returned by category. There are two supported categories:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;38717003 returns only the Longitudinal care plan.&lt;/li&gt; &lt;li&gt;734163000 returns encounter-level care plans.&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;If no category is specified, the web service returns only the Longitudinal care plan.&lt;/p&gt;\n   * @param patient The reference to a patient resource.\n   * @param subject The reference to a patient resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public carePlanSearchEncounterLevelLongitudinalDSTU2(\n    id?: string,\n    category?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleCarePlanDSTU2>;\n  public carePlanSearchEncounterLevelLongitudinalDSTU2(\n    id?: string,\n    category?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleCarePlanDSTU2>>;\n  public carePlanSearchEncounterLevelLongitudinalDSTU2(\n    id?: string,\n    category?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleCarePlanDSTU2>>;\n  public carePlanSearchEncounterLevelLongitudinalDSTU2(\n    id?: string,\n    category?: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (id !== undefined && id !== null) {\n      queryParameters = queryParameters.set('_id', <any>id);\n    }\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleCarePlanDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/CarePlan`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param activityDate Date when the questionnaires are due before.\n   * @param category Always set to SNOMED 719091000000102.\n   * @param patient Patient FHIR resource ID for the patient associated with the care plan.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public carePlanSearchQuestionnairesDueR4(\n    activityDate: string,\n    category: string,\n    patient: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleCarePlanR4>;\n  public carePlanSearchQuestionnairesDueR4(\n    activityDate: string,\n    category: string,\n    patient: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleCarePlanR4>>;\n  public carePlanSearchQuestionnairesDueR4(\n    activityDate: string,\n    category: string,\n    patient: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleCarePlanR4>>;\n  public carePlanSearchQuestionnairesDueR4(\n    activityDate: string,\n    category: string,\n    patient: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (activityDate === null || activityDate === undefined) {\n      throw new Error(\n        'Required parameter activityDate was null or undefined when calling carePlanSearchQuestionnairesDueR4.'\n      );\n    }\n\n    if (category === null || category === undefined) {\n      throw new Error(\n        'Required parameter category was null or undefined when calling carePlanSearchQuestionnairesDueR4.'\n      );\n    }\n\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling carePlanSearchQuestionnairesDueR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (activityDate !== undefined && activityDate !== null) {\n      queryParameters = queryParameters.set('activity-date', <any>activityDate);\n    }\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleCarePlanR4>(\n      'get',\n      `${this.basePath}/R4/CarePlan`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleCareTeamR4 } from '../model/bundleCareTeamR4';\nimport { CareTeamR4 } from '../model/careTeamR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class CareTeamService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR ID for this CareTeam instance\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public careTeamReadEpisodeR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<CareTeamR4>;\n  public careTeamReadEpisodeR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<CareTeamR4>>;\n  public careTeamReadEpisodeR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<CareTeamR4>>;\n  public careTeamReadEpisodeR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling careTeamReadEpisodeR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<CareTeamR4>(\n      'get',\n      `${this.basePath}/R4/CareTeam/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient Patient FHIR resource ID.\n   * @param status CareTeam status. The only supported value is \\&quot;active\\&quot;.\n   * @param subject Patient FHIR resource ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public careTeamSearchLongitudinalR4(\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleCareTeamR4>;\n  public careTeamSearchLongitudinalR4(\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleCareTeamR4>>;\n  public careTeamSearchLongitudinalR4(\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleCareTeamR4>>;\n  public careTeamSearchLongitudinalR4(\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleCareTeamR4>(\n      'get',\n      `${this.basePath}/R4/CareTeam`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleCommunicationR4 } from '../model/bundleCommunicationR4';\nimport { CommunicationR4 } from '../model/communicationR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class CommunicationService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param body payload\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public communicationCreateCommunityResourceR4(\n    body: CommunicationR4,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<CommunicationR4>;\n  public communicationCreateCommunityResourceR4(\n    body: CommunicationR4,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<CommunicationR4>>;\n  public communicationCreateCommunityResourceR4(\n    body: CommunicationR4,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<CommunicationR4>>;\n  public communicationCreateCommunityResourceR4(\n    body: CommunicationR4,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (body === null || body === undefined) {\n      throw new Error(\n        'Required parameter body was null or undefined when calling communicationCreateCommunityResourceR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = ['application/json'];\n    const httpContentTypeSelected: string | undefined =\n      this.configuration.selectHeaderContentType(consumes);\n    if (httpContentTypeSelected != undefined) {\n      headers = headers.set('Content-Type', httpContentTypeSelected);\n    }\n\n    return this.httpClient.request<CommunicationR4>(\n      'post',\n      `${this.basePath}/R4/Communication`,\n      {\n        body: body,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The FHIR identifier for the target Communication resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public communicationReadCommunityResourceR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<CommunicationR4>;\n  public communicationReadCommunityResourceR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<CommunicationR4>>;\n  public communicationReadCommunityResourceR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<CommunicationR4>>;\n  public communicationReadCommunityResourceR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling communicationReadCommunityResourceR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<CommunicationR4>(\n      'get',\n      `${this.basePath}/R4/Communication/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param partOf Reference to the Task resource this Communication belongs to.\n   * @param patient Search for Communication resources for a specified patient ID. You can use both \\&quot;patient\\&quot; and \\&quot;subject\\&quot; equivalently, but if you use both they must look to the same value.\n   * @param subject Search for Communication resources for a specified subject. You can use both \\&quot;patient\\&quot; and \\&quot;subject\\&quot; equivalently, but if you use both they must look to the same value.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public communicationSearchCommunityResourceR4(\n    partOf?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleCommunicationR4>;\n  public communicationSearchCommunityResourceR4(\n    partOf?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleCommunicationR4>>;\n  public communicationSearchCommunityResourceR4(\n    partOf?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleCommunicationR4>>;\n  public communicationSearchCommunityResourceR4(\n    partOf?: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (partOf !== undefined && partOf !== null) {\n      queryParameters = queryParameters.set('part-of', <any>partOf);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleCommunicationR4>(\n      'get',\n      `${this.basePath}/R4/Communication`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleConditionDSTU2 } from '../model/bundleConditionDSTU2';\nimport { BundleConditionR4 } from '../model/bundleConditionR4';\nimport { BundleConditionSTU3 } from '../model/bundleConditionSTU3';\nimport { ConditionDSTU2 } from '../model/conditionDSTU2';\nimport { ConditionR4 } from '../model/conditionR4';\nimport { ConditionSTU3 } from '../model/conditionSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ConditionService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param body payload\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public conditionCreateProblemsR4(\n    body: ConditionR4,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ConditionR4>;\n  public conditionCreateProblemsR4(\n    body: ConditionR4,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ConditionR4>>;\n  public conditionCreateProblemsR4(\n    body: ConditionR4,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ConditionR4>>;\n  public conditionCreateProblemsR4(\n    body: ConditionR4,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (body === null || body === undefined) {\n      throw new Error(\n        'Required parameter body was null or undefined when calling conditionCreateProblemsR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = ['application/json'];\n    const httpContentTypeSelected: string | undefined =\n      this.configuration.selectHeaderContentType(consumes);\n    if (httpContentTypeSelected != undefined) {\n      headers = headers.set('Content-Type', httpContentTypeSelected);\n    }\n\n    return this.httpClient.request<ConditionR4>(\n      'post',\n      `${this.basePath}/R4/Condition`,\n      {\n        body: body,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param body payload\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public conditionCreateProblemsSTU3(\n    body: ConditionSTU3,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ConditionSTU3>;\n  public conditionCreateProblemsSTU3(\n    body: ConditionSTU3,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ConditionSTU3>>;\n  public conditionCreateProblemsSTU3(\n    body: ConditionSTU3,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ConditionSTU3>>;\n  public conditionCreateProblemsSTU3(\n    body: ConditionSTU3,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (body === null || body === undefined) {\n      throw new Error(\n        'Required parameter body was null or undefined when calling conditionCreateProblemsSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = ['application/json'];\n    const httpContentTypeSelected: string | undefined =\n      this.configuration.selectHeaderContentType(consumes);\n    if (httpContentTypeSelected != undefined) {\n      headers = headers.set('Content-Type', httpContentTypeSelected);\n    }\n\n    return this.httpClient.request<ConditionSTU3>(\n      'post',\n      `${this.basePath}/STU3/Condition`,\n      {\n        body: body,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The Condition FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public conditionReadEncounterDiagnosisProblemsSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ConditionSTU3>;\n  public conditionReadEncounterDiagnosisProblemsSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ConditionSTU3>>;\n  public conditionReadEncounterDiagnosisProblemsSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ConditionSTU3>>;\n  public conditionReadEncounterDiagnosisProblemsSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling conditionReadEncounterDiagnosisProblemsSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ConditionSTU3>(\n      'get',\n      `${this.basePath}/STU3/Condition/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The Condition FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public conditionReadProblemsDSTU2(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ConditionDSTU2>;\n  public conditionReadProblemsDSTU2(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ConditionDSTU2>>;\n  public conditionReadProblemsDSTU2(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ConditionDSTU2>>;\n  public conditionReadProblemsDSTU2(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling conditionReadProblemsDSTU2.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ConditionDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Condition/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR identifier for the target Condition resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public conditionReadReasonforVisitR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ConditionR4>;\n  public conditionReadReasonforVisitR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ConditionR4>>;\n  public conditionReadReasonforVisitR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ConditionR4>>;\n  public conditionReadReasonforVisitR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling conditionReadReasonforVisitR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ConditionR4>(\n      'get',\n      `${this.basePath}/R4/Condition/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param category This is \\&quot;problem-list-item\\&quot;, \\&quot;encounter-diagnosis\\&quot;, or \\&quot;health-concern\\&quot;. The default is to return problem list conditions.\n   * @param clinicalStatus &lt;p&gt;Status of the condition&lt;/p&gt; &lt;table class&#x3D;\\&quot;table table-hover\\&quot;&gt; &lt;tr&gt; &lt;th&gt;FHIR Status&lt;/th&gt; &lt;th&gt;Epic Status&lt;/th&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;active&lt;/td&gt; &lt;td&gt;active conditions&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;resolved&lt;/td&gt; &lt;td&gt; resolved conditions&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;inactive&lt;/td&gt; &lt;td&gt;deleted conditions&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;p&gt;If no status is specified all active (confirmed) conditions will be returned. &lt;/p&gt; &lt;p&gt;*Note: Any FHIR Status not listed in the above table is not returned.&lt;/p&gt;\n   * @param encounter A reference to an Encounter resource that the diagnosis is asserted. If not provided, only problem list conditions will be returned.\n   * @param patient The Patient FHIR resource ID.\n   * @param subject Subject of the Condition.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public conditionSearchEncounterDiagnosisProblemsSTU3(\n    category?: string,\n    clinicalStatus?: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleConditionSTU3>;\n  public conditionSearchEncounterDiagnosisProblemsSTU3(\n    category?: string,\n    clinicalStatus?: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleConditionSTU3>>;\n  public conditionSearchEncounterDiagnosisProblemsSTU3(\n    category?: string,\n    clinicalStatus?: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleConditionSTU3>>;\n  public conditionSearchEncounterDiagnosisProblemsSTU3(\n    category?: string,\n    clinicalStatus?: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (clinicalStatus !== undefined && clinicalStatus !== null) {\n      queryParameters = queryParameters.set(\n        'clinical-status',\n        <any>clinicalStatus\n      );\n    }\n    if (encounter !== undefined && encounter !== null) {\n      queryParameters = queryParameters.set('encounter', <any>encounter);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleConditionSTU3>(\n      'get',\n      `${this.basePath}/STU3/Condition`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param category Type of condition – must be “Diagnosis”.\n   * @param clinicalStatus &lt;p&gt;Status of the condition&lt;/p&gt; &lt;table class&#x3D;\\&quot;table table-hover\\&quot;&gt; &lt;tr&gt; &lt;th&gt;FHIR Status&lt;/th&gt; &lt;th&gt;Epic Status&lt;/th&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;active&lt;/td&gt; &lt;td&gt;active conditions&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;resolved&lt;/td&gt; &lt;td&gt; resolved conditions&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;inactive&lt;/td&gt; &lt;td&gt;deleted conditions&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;p&gt;If no status is specified all active (confirmed) conditions will be returned. &lt;/p&gt; &lt;p&gt;*Note: Any FHIR Status not listed in the above table is not returned.&lt;/p&gt;\n   * @param patient The Patient FHIR resource ID.\n   * @param subject Subject of the condition.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public conditionSearchProblemsDSTU2(\n    category?: string,\n    clinicalStatus?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleConditionDSTU2>;\n  public conditionSearchProblemsDSTU2(\n    category?: string,\n    clinicalStatus?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleConditionDSTU2>>;\n  public conditionSearchProblemsDSTU2(\n    category?: string,\n    clinicalStatus?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleConditionDSTU2>>;\n  public conditionSearchProblemsDSTU2(\n    category?: string,\n    clinicalStatus?: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (clinicalStatus !== undefined && clinicalStatus !== null) {\n      queryParameters = queryParameters.set(\n        'clinicalStatus',\n        <any>clinicalStatus\n      );\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleConditionDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Condition`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param category Always “reason-for-visit” for this API. Multiple category values are allowed if the requestor is authorized to search multiple Condition categories.\n   * @param encounter Reference to an encounter resource the condition is for.\n   * @param patient Reference to a patient resource the condition is for.\n   * @param subject Reference to a patient resource the condition is for.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public conditionSearchReasonforVisitR4(\n    category?: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleConditionR4>;\n  public conditionSearchReasonforVisitR4(\n    category?: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleConditionR4>>;\n  public conditionSearchReasonforVisitR4(\n    category?: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleConditionR4>>;\n  public conditionSearchReasonforVisitR4(\n    category?: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (encounter !== undefined && encounter !== null) {\n      queryParameters = queryParameters.set('encounter', <any>encounter);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleConditionR4>(\n      'get',\n      `${this.basePath}/R4/Condition`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleConsentR4 } from '../model/bundleConsentR4';\nimport { BundleConsentSTU3 } from '../model/bundleConsentSTU3';\nimport { ConsentR4 } from '../model/consentR4';\nimport { ConsentSTU3 } from '../model/consentSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ConsentService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The FHIR ID for a Consent resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public consentReadDocumentR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ConsentR4>;\n  public consentReadDocumentR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ConsentR4>>;\n  public consentReadDocumentR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ConsentR4>>;\n  public consentReadDocumentR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling consentReadDocumentR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ConsentR4>(\n      'get',\n      `${this.basePath}/R4/Consent/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The Consent FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public consentReadDocumentSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ConsentSTU3>;\n  public consentReadDocumentSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ConsentSTU3>>;\n  public consentReadDocumentSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ConsentSTU3>>;\n  public consentReadDocumentSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling consentReadDocumentSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ConsentSTU3>(\n      'get',\n      `${this.basePath}/STU3/Consent/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param category The type of code status. Code statuses always include the Advanced Directive (acd) category from the specification of the FHIR ConsentCategoryCodes (consent-category) value set, and additional information about what type of code status.\n   * @param patient FHIR ID for the Patient the consent applies to.\n   * @param status The state of the code status for a patient. This value follows the specification of the FHIR ConsentState value set.\n   * @param subject FHIR ID for the Patient the consent applies to.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public consentSearchCodeStatusR4(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleConsentR4>;\n  public consentSearchCodeStatusR4(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleConsentR4>>;\n  public consentSearchCodeStatusR4(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleConsentR4>>;\n  public consentSearchCodeStatusR4(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleConsentR4>(\n      'get',\n      `${this.basePath}/R4/Consent`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param category &lt;p&gt;The type of consent document. This value follows the specification of the FHIR ConsentCategoryCodes (consent-category) value set, which includes LOINC codes and other identifiers. Additional values can be mapped by Epic organizations if desired.&lt;/p&gt; &lt;p&gt;Supported consent categories include:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;59284-0 (Consent Document)&lt;/li&gt; &lt;li&gt;64292-6 (Release of information Consent Document)&lt;/li&gt; &lt;li&gt;84095-9 (Do not resuscitate)&lt;/li&gt; &lt;li&gt;59284-0 (Clinical Consent)&lt;/li&gt; &lt;li&gt;64293-4 (Procedure Consent Document)&lt;/li&gt; &lt;li&gt;61359-6 (Anesthesia Consent Document)&lt;/li&gt; &lt;li&gt;61358-8 (Surgical operation Consent Document)&lt;/li&gt; &lt;li&gt;52027-0 (Abortion Consent Document)&lt;/li&gt; &lt;li&gt;52029-6 (Sterilization Consent Document)&lt;/li&gt; &lt;li&gt;64300-7 (Organ donation Consent Document)&lt;/li&gt; &lt;li&gt;83930-8 (Research Consent Document)&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;This API also supports SNOMED code 11341000146107-Advance Directive as a category.&lt;/p&gt;\n   * @param patient FHIR ID for the Patient the consent applies to.\n   * @param status &lt;p&gt;The state of the consent. This value follows the specification of the FHIR ConsentState value set. The following values have default out-of-the-box support in Epic. Additional statuses can be mapped by Epic organizations if desired.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;draft&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Corresponds to Epic value 11-Not Received&lt;/li&gt; &lt;/ul&gt; &lt;li&gt;active&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Corresponds to Epic values 10-Received and 20-Accepted&lt;/li&gt; &lt;/ul&gt; &lt;li&gt;rejected&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Corresponds to Epic value 1-Unknown&lt;/li&gt; &lt;/ul&gt; &lt;li&gt;entered-in-error&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Corresponds to Epic value 35-Error&lt;/li&gt; &lt;/ul&gt; &lt;li&gt;inactive&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Does not correspond to any Epic value by default&lt;/li&gt; &lt;/ul&gt; &lt;li&gt;proposed&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Does not correspond to any Epic value by default&lt;/li&gt; &lt;/ul&gt; &lt;/ul&gt; &lt;p&gt;Consent documents with no status specified in Epic are returned when searching without a status parameter&lt;/p&gt;\n   * @param subject FHIR ID for the Patient the consent applies to.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public consentSearchDocumentSTU3(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleConsentSTU3>;\n  public consentSearchDocumentSTU3(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleConsentSTU3>>;\n  public consentSearchDocumentSTU3(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleConsentSTU3>>;\n  public consentSearchDocumentSTU3(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleConsentSTU3>(\n      'get',\n      `${this.basePath}/STU3/Consent`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleCoverageR4 } from '../model/bundleCoverageR4';\nimport { BundleCoverageSTU3 } from '../model/bundleCoverageSTU3';\nimport { CoverageR4 } from '../model/coverageR4';\nimport { CoverageSTU3 } from '../model/coverageSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class CoverageService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The FHIR Coverage ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public coverageReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<CoverageR4>;\n  public coverageReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<CoverageR4>>;\n  public coverageReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<CoverageR4>>;\n  public coverageReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling coverageReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<CoverageR4>(\n      'get',\n      `${this.basePath}/R4/Coverage/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The Coverage FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public coverageReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<CoverageSTU3>;\n  public coverageReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<CoverageSTU3>>;\n  public coverageReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<CoverageSTU3>>;\n  public coverageReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling coverageReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<CoverageSTU3>(\n      'get',\n      `${this.basePath}/STU3/Coverage/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param beneficiary &lt;p&gt;Either the beneficiary or the patient must be specified in the search request. If both are specified, they must match.&lt;/p&gt;\n   * @param patient &lt;p&gt;Either the beneficiary or the patient must be specified in the search request. If both are specified, they must match.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public coverageSearchR4(\n    beneficiary: string,\n    patient: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleCoverageR4>;\n  public coverageSearchR4(\n    beneficiary: string,\n    patient: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleCoverageR4>>;\n  public coverageSearchR4(\n    beneficiary: string,\n    patient: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleCoverageR4>>;\n  public coverageSearchR4(\n    beneficiary: string,\n    patient: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (beneficiary === null || beneficiary === undefined) {\n      throw new Error(\n        'Required parameter beneficiary was null or undefined when calling coverageSearchR4.'\n      );\n    }\n\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling coverageSearchR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (beneficiary !== undefined && beneficiary !== null) {\n      queryParameters = queryParameters.set('beneficiary', <any>beneficiary);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleCoverageR4>(\n      'get',\n      `${this.basePath}/R4/Coverage`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param beneficiary &lt;p&gt;Either the beneficiary or the patient must be specified in the search request. If both are specified, they must match.&lt;/p&gt;\n   * @param patient &lt;p&gt;Either the beneficiary or the patient must be specified in the search request. If both are specified, they must match.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public coverageSearchSTU3(\n    beneficiary: string,\n    patient: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleCoverageSTU3>;\n  public coverageSearchSTU3(\n    beneficiary: string,\n    patient: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleCoverageSTU3>>;\n  public coverageSearchSTU3(\n    beneficiary: string,\n    patient: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleCoverageSTU3>>;\n  public coverageSearchSTU3(\n    beneficiary: string,\n    patient: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (beneficiary === null || beneficiary === undefined) {\n      throw new Error(\n        'Required parameter beneficiary was null or undefined when calling coverageSearchSTU3.'\n      );\n    }\n\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling coverageSearchSTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (beneficiary !== undefined && beneficiary !== null) {\n      queryParameters = queryParameters.set('beneficiary', <any>beneficiary);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleCoverageSTU3>(\n      'get',\n      `${this.basePath}/STU3/Coverage`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { DocumentReferenceSTU3 } from '../model/documentReferenceSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class CreateClinicalNotesSTU3Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param body payload\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public documentReferenceCreateClinicalNotesSTU3(\n    body: DocumentReferenceSTU3,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<DocumentReferenceSTU3>;\n  public documentReferenceCreateClinicalNotesSTU3(\n    body: DocumentReferenceSTU3,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<DocumentReferenceSTU3>>;\n  public documentReferenceCreateClinicalNotesSTU3(\n    body: DocumentReferenceSTU3,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<DocumentReferenceSTU3>>;\n  public documentReferenceCreateClinicalNotesSTU3(\n    body: DocumentReferenceSTU3,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (body === null || body === undefined) {\n      throw new Error(\n        'Required parameter body was null or undefined when calling documentReferenceCreateClinicalNotesSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = ['application/json'];\n    const httpContentTypeSelected: string | undefined =\n      this.configuration.selectHeaderContentType(consumes);\n    if (httpContentTypeSelected != undefined) {\n      headers = headers.set('Content-Type', httpContentTypeSelected);\n    }\n\n    return this.httpClient.request<DocumentReferenceSTU3>(\n      'post',\n      `${this.basePath}/STU3/DocumentReference`,\n      {\n        body: body,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { CommunicationR4 } from '../model/communicationR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class CreateCommunityResourceR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param body payload\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public communicationCreateCommunityResourceR4(\n    body: CommunicationR4,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<CommunicationR4>;\n  public communicationCreateCommunityResourceR4(\n    body: CommunicationR4,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<CommunicationR4>>;\n  public communicationCreateCommunityResourceR4(\n    body: CommunicationR4,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<CommunicationR4>>;\n  public communicationCreateCommunityResourceR4(\n    body: CommunicationR4,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (body === null || body === undefined) {\n      throw new Error(\n        'Required parameter body was null or undefined when calling communicationCreateCommunityResourceR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = ['application/json'];\n    const httpContentTypeSelected: string | undefined =\n      this.configuration.selectHeaderContentType(consumes);\n    if (httpContentTypeSelected != undefined) {\n      headers = headers.set('Content-Type', httpContentTypeSelected);\n    }\n\n    return this.httpClient.request<CommunicationR4>(\n      'post',\n      `${this.basePath}/R4/Communication`,\n      {\n        body: body,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { QuestionnaireResponseR4 } from '../model/questionnaireResponseR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class CreatePatientEnteredQuestionnairesR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param body payload\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public questionnaireResponseCreatePatientEnteredQuestionnairesR4(\n    body: QuestionnaireResponseR4,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<QuestionnaireResponseR4>;\n  public questionnaireResponseCreatePatientEnteredQuestionnairesR4(\n    body: QuestionnaireResponseR4,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<QuestionnaireResponseR4>>;\n  public questionnaireResponseCreatePatientEnteredQuestionnairesR4(\n    body: QuestionnaireResponseR4,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<QuestionnaireResponseR4>>;\n  public questionnaireResponseCreatePatientEnteredQuestionnairesR4(\n    body: QuestionnaireResponseR4,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (body === null || body === undefined) {\n      throw new Error(\n        'Required parameter body was null or undefined when calling questionnaireResponseCreatePatientEnteredQuestionnairesR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = ['application/json'];\n    const httpContentTypeSelected: string | undefined =\n      this.configuration.selectHeaderContentType(consumes);\n    if (httpContentTypeSelected != undefined) {\n      headers = headers.set('Content-Type', httpContentTypeSelected);\n    }\n\n    return this.httpClient.request<QuestionnaireResponseR4>(\n      'post',\n      `${this.basePath}/R4/QuestionnaireResponse`,\n      {\n        body: body,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { GoalSTU3 } from '../model/goalSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class CreatePatientSTU3Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param body payload\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public goalCreatePatientSTU3(\n    body: GoalSTU3,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<GoalSTU3>;\n  public goalCreatePatientSTU3(\n    body: GoalSTU3,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<GoalSTU3>>;\n  public goalCreatePatientSTU3(\n    body: GoalSTU3,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<GoalSTU3>>;\n  public goalCreatePatientSTU3(\n    body: GoalSTU3,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (body === null || body === undefined) {\n      throw new Error(\n        'Required parameter body was null or undefined when calling goalCreatePatientSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = ['application/json'];\n    const httpContentTypeSelected: string | undefined =\n      this.configuration.selectHeaderContentType(consumes);\n    if (httpContentTypeSelected != undefined) {\n      headers = headers.set('Content-Type', httpContentTypeSelected);\n    }\n\n    return this.httpClient.request<GoalSTU3>(\n      'post',\n      `${this.basePath}/STU3/Goal`,\n      {\n        body: body,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { ConditionR4 } from '../model/conditionR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class CreateProblemsR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param body payload\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public conditionCreateProblemsR4(\n    body: ConditionR4,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ConditionR4>;\n  public conditionCreateProblemsR4(\n    body: ConditionR4,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ConditionR4>>;\n  public conditionCreateProblemsR4(\n    body: ConditionR4,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ConditionR4>>;\n  public conditionCreateProblemsR4(\n    body: ConditionR4,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (body === null || body === undefined) {\n      throw new Error(\n        'Required parameter body was null or undefined when calling conditionCreateProblemsR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = ['application/json'];\n    const httpContentTypeSelected: string | undefined =\n      this.configuration.selectHeaderContentType(consumes);\n    if (httpContentTypeSelected != undefined) {\n      headers = headers.set('Content-Type', httpContentTypeSelected);\n    }\n\n    return this.httpClient.request<ConditionR4>(\n      'post',\n      `${this.basePath}/R4/Condition`,\n      {\n        body: body,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { ConditionSTU3 } from '../model/conditionSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class CreateProblemsSTU3Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param body payload\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public conditionCreateProblemsSTU3(\n    body: ConditionSTU3,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ConditionSTU3>;\n  public conditionCreateProblemsSTU3(\n    body: ConditionSTU3,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ConditionSTU3>>;\n  public conditionCreateProblemsSTU3(\n    body: ConditionSTU3,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ConditionSTU3>>;\n  public conditionCreateProblemsSTU3(\n    body: ConditionSTU3,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (body === null || body === undefined) {\n      throw new Error(\n        'Required parameter body was null or undefined when calling conditionCreateProblemsSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = ['application/json'];\n    const httpContentTypeSelected: string | undefined =\n      this.configuration.selectHeaderContentType(consumes);\n    if (httpContentTypeSelected != undefined) {\n      headers = headers.set('Content-Type', httpContentTypeSelected);\n    }\n\n    return this.httpClient.request<ConditionSTU3>(\n      'post',\n      `${this.basePath}/STU3/Condition`,\n      {\n        body: body,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { AllergyIntoleranceR4 } from '../model/allergyIntoleranceR4';\nimport { PatientR4 } from '../model/patientR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class CreateR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param body payload\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public allergyIntoleranceCreateR4(\n    body: AllergyIntoleranceR4,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<AllergyIntoleranceR4>;\n  public allergyIntoleranceCreateR4(\n    body: AllergyIntoleranceR4,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<AllergyIntoleranceR4>>;\n  public allergyIntoleranceCreateR4(\n    body: AllergyIntoleranceR4,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<AllergyIntoleranceR4>>;\n  public allergyIntoleranceCreateR4(\n    body: AllergyIntoleranceR4,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (body === null || body === undefined) {\n      throw new Error(\n        'Required parameter body was null or undefined when calling allergyIntoleranceCreateR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = ['application/json'];\n    const httpContentTypeSelected: string | undefined =\n      this.configuration.selectHeaderContentType(consumes);\n    if (httpContentTypeSelected != undefined) {\n      headers = headers.set('Content-Type', httpContentTypeSelected);\n    }\n\n    return this.httpClient.request<AllergyIntoleranceR4>(\n      'post',\n      `${this.basePath}/R4/AllergyIntolerance`,\n      {\n        body: body,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param body payload\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public patientCreateR4(\n    body: PatientR4,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<PatientR4>;\n  public patientCreateR4(\n    body: PatientR4,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<PatientR4>>;\n  public patientCreateR4(\n    body: PatientR4,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<PatientR4>>;\n  public patientCreateR4(\n    body: PatientR4,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (body === null || body === undefined) {\n      throw new Error(\n        'Required parameter body was null or undefined when calling patientCreateR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = ['application/json'];\n    const httpContentTypeSelected: string | undefined =\n      this.configuration.selectHeaderContentType(consumes);\n    if (httpContentTypeSelected != undefined) {\n      headers = headers.set('Content-Type', httpContentTypeSelected);\n    }\n\n    return this.httpClient.request<PatientR4>(\n      'post',\n      `${this.basePath}/R4/Patient`,\n      {\n        body: body,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { AllergyIntoleranceSTU3 } from '../model/allergyIntoleranceSTU3';\nimport { PatientSTU3 } from '../model/patientSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class CreateSTU3Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param body payload\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public allergyIntoleranceCreateSTU3(\n    body: AllergyIntoleranceSTU3,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<AllergyIntoleranceSTU3>;\n  public allergyIntoleranceCreateSTU3(\n    body: AllergyIntoleranceSTU3,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<AllergyIntoleranceSTU3>>;\n  public allergyIntoleranceCreateSTU3(\n    body: AllergyIntoleranceSTU3,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<AllergyIntoleranceSTU3>>;\n  public allergyIntoleranceCreateSTU3(\n    body: AllergyIntoleranceSTU3,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (body === null || body === undefined) {\n      throw new Error(\n        'Required parameter body was null or undefined when calling allergyIntoleranceCreateSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = ['application/json'];\n    const httpContentTypeSelected: string | undefined =\n      this.configuration.selectHeaderContentType(consumes);\n    if (httpContentTypeSelected != undefined) {\n      headers = headers.set('Content-Type', httpContentTypeSelected);\n    }\n\n    return this.httpClient.request<AllergyIntoleranceSTU3>(\n      'post',\n      `${this.basePath}/STU3/AllergyIntolerance`,\n      {\n        body: body,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param body payload\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public patientCreateSTU3(\n    body: PatientSTU3,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<PatientSTU3>;\n  public patientCreateSTU3(\n    body: PatientSTU3,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<PatientSTU3>>;\n  public patientCreateSTU3(\n    body: PatientSTU3,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<PatientSTU3>>;\n  public patientCreateSTU3(\n    body: PatientSTU3,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (body === null || body === undefined) {\n      throw new Error(\n        'Required parameter body was null or undefined when calling patientCreateSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = ['application/json'];\n    const httpContentTypeSelected: string | undefined =\n      this.configuration.selectHeaderContentType(consumes);\n    if (httpContentTypeSelected != undefined) {\n      headers = headers.set('Content-Type', httpContentTypeSelected);\n    }\n\n    return this.httpClient.request<PatientSTU3>(\n      'post',\n      `${this.basePath}/STU3/Patient`,\n      {\n        body: body,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { ObservationR4 } from '../model/observationR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class CreateVitalsR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param body payload\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public observationCreateVitalsR4(\n    body: ObservationR4,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ObservationR4>;\n  public observationCreateVitalsR4(\n    body: ObservationR4,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ObservationR4>>;\n  public observationCreateVitalsR4(\n    body: ObservationR4,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ObservationR4>>;\n  public observationCreateVitalsR4(\n    body: ObservationR4,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (body === null || body === undefined) {\n      throw new Error(\n        'Required parameter body was null or undefined when calling observationCreateVitalsR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = ['application/json'];\n    const httpContentTypeSelected: string | undefined =\n      this.configuration.selectHeaderContentType(consumes);\n    if (httpContentTypeSelected != undefined) {\n      headers = headers.set('Content-Type', httpContentTypeSelected);\n    }\n\n    return this.httpClient.request<ObservationR4>(\n      'post',\n      `${this.basePath}/R4/Observation`,\n      {\n        body: body,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { ObservationSTU3 } from '../model/observationSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class CreateVitalsSTU3Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param body payload\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public observationCreateVitalsSTU3(\n    body: ObservationSTU3,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ObservationSTU3>;\n  public observationCreateVitalsSTU3(\n    body: ObservationSTU3,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ObservationSTU3>>;\n  public observationCreateVitalsSTU3(\n    body: ObservationSTU3,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ObservationSTU3>>;\n  public observationCreateVitalsSTU3(\n    body: ObservationSTU3,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (body === null || body === undefined) {\n      throw new Error(\n        'Required parameter body was null or undefined when calling observationCreateVitalsSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = ['application/json'];\n    const httpContentTypeSelected: string | undefined =\n      this.configuration.selectHeaderContentType(consumes);\n    if (httpContentTypeSelected != undefined) {\n      headers = headers.set('Content-Type', httpContentTypeSelected);\n    }\n\n    return this.httpClient.request<ObservationSTU3>(\n      'post',\n      `${this.basePath}/STU3/Observation`,\n      {\n        body: body,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleDeviceDSTU2 } from '../model/bundleDeviceDSTU2';\nimport { BundleDeviceR4 } from '../model/bundleDeviceR4';\nimport { BundleDeviceSTU3 } from '../model/bundleDeviceSTU3';\nimport { DeviceDSTU2 } from '../model/deviceDSTU2';\nimport { DeviceR4 } from '../model/deviceR4';\nimport { DeviceSTU3 } from '../model/deviceSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class DeviceService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The Device FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public deviceReadDSTU2(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<DeviceDSTU2>;\n  public deviceReadDSTU2(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<DeviceDSTU2>>;\n  public deviceReadDSTU2(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<DeviceDSTU2>>;\n  public deviceReadDSTU2(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling deviceReadDSTU2.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<DeviceDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Device/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The Device FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public deviceReadImplantsR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<DeviceR4>;\n  public deviceReadImplantsR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<DeviceR4>>;\n  public deviceReadImplantsR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<DeviceR4>>;\n  public deviceReadImplantsR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling deviceReadImplantsR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<DeviceR4>(\n      'get',\n      `${this.basePath}/R4/Device/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The Device FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public deviceReadImplantsandExternalDevicesSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<DeviceSTU3>;\n  public deviceReadImplantsandExternalDevicesSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<DeviceSTU3>>;\n  public deviceReadImplantsandExternalDevicesSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<DeviceSTU3>>;\n  public deviceReadImplantsandExternalDevicesSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling deviceReadImplantsandExternalDevicesSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<DeviceSTU3>(\n      'get',\n      `${this.basePath}/STU3/Device/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient &lt;p&gt;Patient is always required.&lt;/p&gt;\n   * @param id A parameter\n   * @param type &lt;p&gt;The type of the device.&lt;/p&gt;\n   * @param udi &lt;p&gt;FDA mandated Unique Device Identifier.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public deviceSearchDSTU2(\n    patient: string,\n    id?: string,\n    type?: string,\n    udi?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleDeviceDSTU2>;\n  public deviceSearchDSTU2(\n    patient: string,\n    id?: string,\n    type?: string,\n    udi?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleDeviceDSTU2>>;\n  public deviceSearchDSTU2(\n    patient: string,\n    id?: string,\n    type?: string,\n    udi?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleDeviceDSTU2>>;\n  public deviceSearchDSTU2(\n    patient: string,\n    id?: string,\n    type?: string,\n    udi?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling deviceSearchDSTU2.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (id !== undefined && id !== null) {\n      queryParameters = queryParameters.set('_id', <any>id);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (type !== undefined && type !== null) {\n      queryParameters = queryParameters.set('type', <any>type);\n    }\n    if (udi !== undefined && udi !== null) {\n      queryParameters = queryParameters.set('udi', <any>udi);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleDeviceDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Device`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient &lt;p&gt;Patient identifier for the patient to whom the device is affixed.&lt;/p&gt; &lt;p&gt;This property is always required by Epic.&lt;/p&gt;\n   * @param deviceName &lt;p&gt;A string that may match the device UDI name.&lt;/p&gt;\n   * @param manufacturer &lt;p&gt;Device manufacturer.&lt;/p&gt;\n   * @param model &lt;p&gt;Device model.&lt;/p&gt;\n   * @param udiCarrier &lt;p&gt;The UDI barcode string either in HRF format or AIDC format.&lt;/p&gt;\n   * @param udiDi &lt;p&gt;UDI device identifier.&lt;/p&gt; &lt;p&gt;Under FDA regulations, all medical devices are required to include a Unique Device Identifier (UDI) on device labels and packages, in both human-readable and barcode format. The FDA also maintains a public database of medical devices and UDI information called the &lt;a href&#x3D;\\&quot;https://accessgudid.nlm.nih.gov/\\&quot;&gt;Global Unique Device Identification Database (GUDID)&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;A Unique Device Identifier (UDI) is a unique numeric or alphanumeric code that is comprised of two components:&lt;/p&gt; &lt;ul&gt;   &lt;li&gt;Device Identifier (DI) (\\&quot;Static UDI\\&quot;) – a mandatory, fixed portion of a UDI that identifies the labeler and specific version or model of a device.&lt;/li&gt;   &lt;li&gt;Production Identifiers (PI) (\\&quot;Dynamic UDI\\&quot;) – a conditional, variable portion of a UDI that identifies one or more of the following:&lt;/li&gt;   &lt;ul&gt;   &lt;li&gt;Lot or batch number within which a device was manufactured&lt;/li&gt;   &lt;li&gt;Serial number of a specific device&lt;/li&gt;   &lt;li&gt;Expiration date of a specific device&lt;/li&gt;   &lt;li&gt;Production date of a specific device&lt;/li&gt;   &lt;li&gt;Distinct identification code for a human cell, tissue, or cellular- and tissue-based product&lt;/li&gt; &lt;/ul&gt; &lt;/ul&gt; &lt;p&gt;When documenting a UDI for an implant in OpTime, you will need to use an identifier that is in a valid format for the selected issuer. Here are some example UDIs you can use for testing:&lt;/p&gt; &lt;table class&#x3D;\\&quot;table table-hover\\&quot;&gt; &lt;tr&gt;   &lt;th&gt;UDI Type / Issuer&lt;/th&gt;   &lt;th&gt;Example Device ID&lt;/th&gt; &lt;/tr&gt; &lt;tr&gt;   &lt;td&gt;ICCBBA&lt;/td&gt;   &lt;td&gt;W4184228005T0473&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt;   &lt;td&gt;HIBC&lt;/td&gt;   &lt;td&gt;MDLXMAG120200&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt;   &lt;td&gt;GS1&lt;/td&gt;   &lt;td&gt;00822409025305&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public deviceSearchImplantsR4(\n    patient: string,\n    deviceName?: string,\n    manufacturer?: string,\n    model?: string,\n    udiCarrier?: string,\n    udiDi?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleDeviceR4>;\n  public deviceSearchImplantsR4(\n    patient: string,\n    deviceName?: string,\n    manufacturer?: string,\n    model?: string,\n    udiCarrier?: string,\n    udiDi?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleDeviceR4>>;\n  public deviceSearchImplantsR4(\n    patient: string,\n    deviceName?: string,\n    manufacturer?: string,\n    model?: string,\n    udiCarrier?: string,\n    udiDi?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleDeviceR4>>;\n  public deviceSearchImplantsR4(\n    patient: string,\n    deviceName?: string,\n    manufacturer?: string,\n    model?: string,\n    udiCarrier?: string,\n    udiDi?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling deviceSearchImplantsR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (deviceName !== undefined && deviceName !== null) {\n      queryParameters = queryParameters.set('device-name', <any>deviceName);\n    }\n    if (manufacturer !== undefined && manufacturer !== null) {\n      queryParameters = queryParameters.set('manufacturer', <any>manufacturer);\n    }\n    if (model !== undefined && model !== null) {\n      queryParameters = queryParameters.set('model', <any>model);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (udiCarrier !== undefined && udiCarrier !== null) {\n      queryParameters = queryParameters.set('udi-carrier', <any>udiCarrier);\n    }\n    if (udiDi !== undefined && udiDi !== null) {\n      queryParameters = queryParameters.set('udi-di', <any>udiDi);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleDeviceR4>(\n      'get',\n      `${this.basePath}/R4/Device`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient &lt;p&gt;Patient identifier for the patient to whom the device is affixed.&lt;/p&gt;\n   * @param deviceName &lt;p&gt;A string that may match the device UDI name.&lt;/p&gt;\n   * @param manufacturer &lt;p&gt;Device manufacturer.&lt;/p&gt;\n   * @param model &lt;p&gt;Device model.&lt;/p&gt;\n   * @param udiCarrier &lt;p&gt;The UDI barcode string either in HRF format or AIDC format.&lt;/p&gt;\n   * @param udiDi &lt;p&gt;UDI device identifier.&lt;/p&gt; &lt;p&gt;Under FDA regulations, all medical devices are required to include a Unique Device Identifier (UDI) on device labels and packages, in both human-readable and barcode format. The FDA also maintains a public database of medical devices and UDI information called the &lt;a href&#x3D;\\&quot;https://accessgudid.nlm.nih.gov/\\&quot;&gt;Global Unique Device Identification Database (GUDID)&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;A Unique Device Identifier (UDI) is a unique numeric or alphanumeric code that is comprised of two components:&lt;/p&gt; &lt;ul&gt;   &lt;li&gt;Device Identifier (DI) (\\&quot;Static UDI\\&quot;) – a mandatory, fixed portion of a UDI that identifiers the labeler and specific version or model of a device.&lt;/li&gt;   &lt;li&gt;Production Identifiers (PI) (\\&quot;Dynamic UDI\\&quot;) – a conditional, variable portion of a UDI that identifies one or more of the following:&lt;/li&gt;   &lt;ul&gt;   &lt;li&gt;Lot or batch number within which a device was manufactured&lt;/li&gt;   &lt;li&gt;Serial number of a specific device&lt;/li&gt;   &lt;li&gt;Expiration date of a specific device&lt;/li&gt;   &lt;li&gt;Production date of a specific device&lt;/li&gt;   &lt;li&gt;Distinct identification code for a human cell, tissue, or cellular- and tissue-based product&lt;/li&gt; &lt;/ul&gt; &lt;/ul&gt; &lt;p&gt;When documenting a UDI for an implant in OpTime, you will need to use an identifier that is in a valid format for the selected issuer. Here are some example UDIs you can use for testing:&lt;/p&gt; &lt;table class&#x3D;\\&quot;table table-hover\\&quot;&gt; &lt;tr&gt;   &lt;th&gt;UDI Type / Issuer&lt;/th&gt;   &lt;th&gt;Example Device ID&lt;/th&gt; &lt;/tr&gt; &lt;tr&gt;   &lt;td&gt;ICCBBA&lt;/td&gt;   &lt;td&gt;W4184228005T0473&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt;   &lt;td&gt;HIBC&lt;/td&gt;   &lt;td&gt;MDLXMAG120200&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt;   &lt;td&gt;GS1&lt;/td&gt;   &lt;td&gt;00822409025305&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public deviceSearchImplantsandExternalDevicesSTU3(\n    patient: string,\n    deviceName?: string,\n    manufacturer?: string,\n    model?: string,\n    udiCarrier?: string,\n    udiDi?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleDeviceSTU3>;\n  public deviceSearchImplantsandExternalDevicesSTU3(\n    patient: string,\n    deviceName?: string,\n    manufacturer?: string,\n    model?: string,\n    udiCarrier?: string,\n    udiDi?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleDeviceSTU3>>;\n  public deviceSearchImplantsandExternalDevicesSTU3(\n    patient: string,\n    deviceName?: string,\n    manufacturer?: string,\n    model?: string,\n    udiCarrier?: string,\n    udiDi?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleDeviceSTU3>>;\n  public deviceSearchImplantsandExternalDevicesSTU3(\n    patient: string,\n    deviceName?: string,\n    manufacturer?: string,\n    model?: string,\n    udiCarrier?: string,\n    udiDi?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling deviceSearchImplantsandExternalDevicesSTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (deviceName !== undefined && deviceName !== null) {\n      queryParameters = queryParameters.set('device-name', <any>deviceName);\n    }\n    if (manufacturer !== undefined && manufacturer !== null) {\n      queryParameters = queryParameters.set('manufacturer', <any>manufacturer);\n    }\n    if (model !== undefined && model !== null) {\n      queryParameters = queryParameters.set('model', <any>model);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (udiCarrier !== undefined && udiCarrier !== null) {\n      queryParameters = queryParameters.set('udi-carrier', <any>udiCarrier);\n    }\n    if (udiDi !== undefined && udiDi !== null) {\n      queryParameters = queryParameters.set('udi-di', <any>udiDi);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleDeviceSTU3>(\n      'get',\n      `${this.basePath}/STU3/Device`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleDeviceRequestR4 } from '../model/bundleDeviceRequestR4';\nimport { BundleDeviceRequestSTU3 } from '../model/bundleDeviceRequestSTU3';\nimport { DeviceRequestR4 } from '../model/deviceRequestR4';\nimport { DeviceRequestSTU3 } from '../model/deviceRequestSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class DeviceRequestService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The DeviceRequest FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public deviceRequestReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<DeviceRequestR4>;\n  public deviceRequestReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<DeviceRequestR4>>;\n  public deviceRequestReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<DeviceRequestR4>>;\n  public deviceRequestReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling deviceRequestReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<DeviceRequestR4>(\n      'get',\n      `${this.basePath}/R4/DeviceRequest/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The DeviceRequest FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public deviceRequestReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<DeviceRequestSTU3>;\n  public deviceRequestReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<DeviceRequestSTU3>>;\n  public deviceRequestReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<DeviceRequestSTU3>>;\n  public deviceRequestReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling deviceRequestReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<DeviceRequestSTU3>(\n      'get',\n      `${this.basePath}/STU3/DeviceRequest/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient &lt;p&gt;Patient identifier for the patient who is the target of the request&lt;/p&gt; &lt;p&gt;This property is always required by Epic.&lt;/p&gt;\n   * @param status &lt;p&gt;The status of a request. Can be one of the following:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;active&lt;/li&gt; &lt;li&gt;completed&lt;/li&gt; &lt;li&gt;draft&lt;/li&gt; &lt;li&gt;cancelled&lt;/li&gt; &lt;li&gt;unknown&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;If unspecified, returns requests of all statuses.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public deviceRequestSearchR4(\n    patient: string,\n    status?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleDeviceRequestR4>;\n  public deviceRequestSearchR4(\n    patient: string,\n    status?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleDeviceRequestR4>>;\n  public deviceRequestSearchR4(\n    patient: string,\n    status?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleDeviceRequestR4>>;\n  public deviceRequestSearchR4(\n    patient: string,\n    status?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling deviceRequestSearchR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleDeviceRequestR4>(\n      'get',\n      `${this.basePath}/R4/DeviceRequest`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient &lt;p&gt;Patient identifier for the patient who is the target of the request&lt;/p&gt; &lt;p&gt;This property is always required by Epic.&lt;/p&gt;\n   * @param status &lt;p&gt;The status of a request. Can be one of the following:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;active&lt;/li&gt; &lt;li&gt;completed&lt;/li&gt; &lt;li&gt;draft&lt;/li&gt; &lt;li&gt;cancelled&lt;/li&gt; &lt;li&gt;unknown&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;If unspecified, returns requests of all statuses.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public deviceRequestSearchSTU3(\n    patient: string,\n    status?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleDeviceRequestSTU3>;\n  public deviceRequestSearchSTU3(\n    patient: string,\n    status?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleDeviceRequestSTU3>>;\n  public deviceRequestSearchSTU3(\n    patient: string,\n    status?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleDeviceRequestSTU3>>;\n  public deviceRequestSearchSTU3(\n    patient: string,\n    status?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling deviceRequestSearchSTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleDeviceRequestSTU3>(\n      'get',\n      `${this.basePath}/STU3/DeviceRequest`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleDeviceUseStatementR4 } from '../model/bundleDeviceUseStatementR4';\nimport { BundleDeviceUseStatementSTU3 } from '../model/bundleDeviceUseStatementSTU3';\nimport { DeviceUseStatementR4 } from '../model/deviceUseStatementR4';\nimport { DeviceUseStatementSTU3 } from '../model/deviceUseStatementSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class DeviceUseStatementService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The DeviceUseStatement FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public deviceUseStatementReadImplantsR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<DeviceUseStatementR4>;\n  public deviceUseStatementReadImplantsR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<DeviceUseStatementR4>>;\n  public deviceUseStatementReadImplantsR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<DeviceUseStatementR4>>;\n  public deviceUseStatementReadImplantsR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling deviceUseStatementReadImplantsR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<DeviceUseStatementR4>(\n      'get',\n      `${this.basePath}/R4/DeviceUseStatement/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The DeviceUseStatement FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public deviceUseStatementReadImplantsandExternalDevicesSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<DeviceUseStatementSTU3>;\n  public deviceUseStatementReadImplantsandExternalDevicesSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<DeviceUseStatementSTU3>>;\n  public deviceUseStatementReadImplantsandExternalDevicesSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<DeviceUseStatementSTU3>>;\n  public deviceUseStatementReadImplantsandExternalDevicesSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling deviceUseStatementReadImplantsandExternalDevicesSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<DeviceUseStatementSTU3>(\n      'get',\n      `${this.basePath}/STU3/DeviceUseStatement/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient A parameter\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public deviceUseStatementSearchImplantsR4(\n    patient: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleDeviceUseStatementR4>;\n  public deviceUseStatementSearchImplantsR4(\n    patient: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleDeviceUseStatementR4>>;\n  public deviceUseStatementSearchImplantsR4(\n    patient: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleDeviceUseStatementR4>>;\n  public deviceUseStatementSearchImplantsR4(\n    patient: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling deviceUseStatementSearchImplantsR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleDeviceUseStatementR4>(\n      'get',\n      `${this.basePath}/R4/DeviceUseStatement`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient Patient identifier for the patient using the device.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public deviceUseStatementSearchImplantsandExternalDevicesSTU3(\n    patient: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleDeviceUseStatementSTU3>;\n  public deviceUseStatementSearchImplantsandExternalDevicesSTU3(\n    patient: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleDeviceUseStatementSTU3>>;\n  public deviceUseStatementSearchImplantsandExternalDevicesSTU3(\n    patient: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleDeviceUseStatementSTU3>>;\n  public deviceUseStatementSearchImplantsandExternalDevicesSTU3(\n    patient: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling deviceUseStatementSearchImplantsandExternalDevicesSTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleDeviceUseStatementSTU3>(\n      'get',\n      `${this.basePath}/STU3/DeviceUseStatement`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleDiagnosticReportDSTU2 } from '../model/bundleDiagnosticReportDSTU2';\nimport { BundleDiagnosticReportR4 } from '../model/bundleDiagnosticReportR4';\nimport { BundleDiagnosticReportSTU3 } from '../model/bundleDiagnosticReportSTU3';\nimport { DiagnosticReportDSTU2 } from '../model/diagnosticReportDSTU2';\nimport { DiagnosticReportR4 } from '../model/diagnosticReportR4';\nimport { DiagnosticReportSTU3 } from '../model/diagnosticReportSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class DiagnosticReportService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The DiagnosticReport FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public diagnosticReportReadResultsDSTU2(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<DiagnosticReportDSTU2>;\n  public diagnosticReportReadResultsDSTU2(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<DiagnosticReportDSTU2>>;\n  public diagnosticReportReadResultsDSTU2(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<DiagnosticReportDSTU2>>;\n  public diagnosticReportReadResultsDSTU2(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling diagnosticReportReadResultsDSTU2.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<DiagnosticReportDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/DiagnosticReport/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The DiagnosticReport FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public diagnosticReportReadResultsR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<DiagnosticReportR4>;\n  public diagnosticReportReadResultsR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<DiagnosticReportR4>>;\n  public diagnosticReportReadResultsR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<DiagnosticReportR4>>;\n  public diagnosticReportReadResultsR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling diagnosticReportReadResultsR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<DiagnosticReportR4>(\n      'get',\n      `${this.basePath}/R4/DiagnosticReport/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The DiagnosticReport FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public diagnosticReportReadResultsSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<DiagnosticReportSTU3>;\n  public diagnosticReportReadResultsSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<DiagnosticReportSTU3>>;\n  public diagnosticReportReadResultsSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<DiagnosticReportSTU3>>;\n  public diagnosticReportReadResultsSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling diagnosticReportReadResultsSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<DiagnosticReportSTU3>(\n      'get',\n      `${this.basePath}/STU3/DiagnosticReport/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient The patient FHIR ID.\n   * @param subject The patient FHIR ID.\n   * @param code LOINC code of procedure(s).\n   * @param date Date when obtained.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public diagnosticReportSearchResultsDSTU2(\n    patient: string,\n    subject: string,\n    code?: string,\n    date?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleDiagnosticReportDSTU2>;\n  public diagnosticReportSearchResultsDSTU2(\n    patient: string,\n    subject: string,\n    code?: string,\n    date?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleDiagnosticReportDSTU2>>;\n  public diagnosticReportSearchResultsDSTU2(\n    patient: string,\n    subject: string,\n    code?: string,\n    date?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleDiagnosticReportDSTU2>>;\n  public diagnosticReportSearchResultsDSTU2(\n    patient: string,\n    subject: string,\n    code?: string,\n    date?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling diagnosticReportSearchResultsDSTU2.'\n      );\n    }\n\n    if (subject === null || subject === undefined) {\n      throw new Error(\n        'Required parameter subject was null or undefined when calling diagnosticReportSearchResultsDSTU2.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (code !== undefined && code !== null) {\n      queryParameters = queryParameters.set('code', <any>code);\n    }\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleDiagnosticReportDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/DiagnosticReport`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param category &lt;p&gt;The service category.&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Starting in the November 2021 version of Epic (or the August 2021 version with special updates), this can be either an Epic order type or a value from the &lt;a href&#x3D;\\&quot;http://hl7.org/fhir/us/core/2019Sep/ValueSet-us-core-diagnosticreport-category.html\\&quot;&gt;US Core valueset for DiagnosticReport&lt;/a&gt;. &lt;li&gt;In earlier versions, this must be a value from the &lt;a href&#x3D;\\&quot;http://hl7.org/fhir/us/core/2019Sep/ValueSet-us-core-diagnosticreport-category.html\\&quot;&gt;US Core valueset for DiagnosticReport&lt;/a&gt;.&lt;/ul&gt;\n   * @param code The code for the report as a whole, as opposed to codes for the atomic results, which are the names on the observation resource referred to from the result.  &lt;ul&gt;&lt;li&gt;Starting in the November 2021 version of Epic, or the August 2021 version with special updates, this can be any code type associated with the procedures, including LOINC, CPT, SNOMED, or other code types mapped to a procedure in Epic.&lt;/li&gt; &lt;li&gt;In earlier versions, this can only be a LOINC code.&lt;/li&gt;&lt;/ul&gt;\n   * @param date The date or date range the order was resulted.\n   * @param identifier An identifier for the report. This can be the Epic order ID or the accession number.\n   * @param patient The reference to a patient resource.\n   * @param subject The reference to a patient resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public diagnosticReportSearchResultsR4(\n    category?: string,\n    code?: string,\n    date?: string,\n    identifier?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleDiagnosticReportR4>;\n  public diagnosticReportSearchResultsR4(\n    category?: string,\n    code?: string,\n    date?: string,\n    identifier?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleDiagnosticReportR4>>;\n  public diagnosticReportSearchResultsR4(\n    category?: string,\n    code?: string,\n    date?: string,\n    identifier?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleDiagnosticReportR4>>;\n  public diagnosticReportSearchResultsR4(\n    category?: string,\n    code?: string,\n    date?: string,\n    identifier?: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (code !== undefined && code !== null) {\n      queryParameters = queryParameters.set('code', <any>code);\n    }\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n    if (identifier !== undefined && identifier !== null) {\n      queryParameters = queryParameters.set('identifier', <any>identifier);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleDiagnosticReportR4>(\n      'get',\n      `${this.basePath}/R4/DiagnosticReport`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param code The code for the report as a whole, as opposed to codes for the atomic results, which are the names on the observation resource referred to from the result.  &lt;ul&gt;&lt;li&gt;Starting in the November 2021 version of Epic, or the August 2021 version with special updates, this can be any code type associated with the procedures, including LOINC, CPT, SNOMED, or other code types mapped to a procedure in Epic.&lt;/li&gt; &lt;li&gt;In earlier versions, this can only be a LOINC code.&lt;/li&gt;&lt;/ul&gt;\n   * @param date The date or date range the order was resulted.\n   * @param patient The subject of the report if it is a patient.\n   * @param subject The subject of the report if it is a patient.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public diagnosticReportSearchResultsSTU3(\n    code?: string,\n    date?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleDiagnosticReportSTU3>;\n  public diagnosticReportSearchResultsSTU3(\n    code?: string,\n    date?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleDiagnosticReportSTU3>>;\n  public diagnosticReportSearchResultsSTU3(\n    code?: string,\n    date?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleDiagnosticReportSTU3>>;\n  public diagnosticReportSearchResultsSTU3(\n    code?: string,\n    date?: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (code !== undefined && code !== null) {\n      queryParameters = queryParameters.set('code', <any>code);\n    }\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleDiagnosticReportSTU3>(\n      'get',\n      `${this.basePath}/STU3/DiagnosticReport`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleDocumentReferenceDSTU2 } from '../model/bundleDocumentReferenceDSTU2';\nimport { BundleDocumentReferenceR4 } from '../model/bundleDocumentReferenceR4';\nimport { BundleDocumentReferenceSTU3 } from '../model/bundleDocumentReferenceSTU3';\nimport { DocumentReferenceDSTU2 } from '../model/documentReferenceDSTU2';\nimport { DocumentReferenceR4 } from '../model/documentReferenceR4';\nimport { DocumentReferenceSTU3 } from '../model/documentReferenceSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class DocumentReferenceService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param body payload\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public documentReferenceCreateClinicalNotesSTU3(\n    body: DocumentReferenceSTU3,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<DocumentReferenceSTU3>;\n  public documentReferenceCreateClinicalNotesSTU3(\n    body: DocumentReferenceSTU3,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<DocumentReferenceSTU3>>;\n  public documentReferenceCreateClinicalNotesSTU3(\n    body: DocumentReferenceSTU3,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<DocumentReferenceSTU3>>;\n  public documentReferenceCreateClinicalNotesSTU3(\n    body: DocumentReferenceSTU3,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (body === null || body === undefined) {\n      throw new Error(\n        'Required parameter body was null or undefined when calling documentReferenceCreateClinicalNotesSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = ['application/json'];\n    const httpContentTypeSelected: string | undefined =\n      this.configuration.selectHeaderContentType(consumes);\n    if (httpContentTypeSelected != undefined) {\n      headers = headers.set('Content-Type', httpContentTypeSelected);\n    }\n\n    return this.httpClient.request<DocumentReferenceSTU3>(\n      'post',\n      `${this.basePath}/STU3/DocumentReference`,\n      {\n        body: body,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The DocumentReference FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public documentReferenceReadGeneratedCCDADSTU2(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<DocumentReferenceDSTU2>;\n  public documentReferenceReadGeneratedCCDADSTU2(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<DocumentReferenceDSTU2>>;\n  public documentReferenceReadGeneratedCCDADSTU2(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<DocumentReferenceDSTU2>>;\n  public documentReferenceReadGeneratedCCDADSTU2(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling documentReferenceReadGeneratedCCDADSTU2.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<DocumentReferenceDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/DocumentReference/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The DocumentReference FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public documentReferenceReadRadiologyResultsR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<DocumentReferenceR4>;\n  public documentReferenceReadRadiologyResultsR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<DocumentReferenceR4>>;\n  public documentReferenceReadRadiologyResultsR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<DocumentReferenceR4>>;\n  public documentReferenceReadRadiologyResultsR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling documentReferenceReadRadiologyResultsR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<DocumentReferenceR4>(\n      'get',\n      `${this.basePath}/R4/DocumentReference/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The DocumentReference FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public documentReferenceReadRadiologyResultsSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<DocumentReferenceSTU3>;\n  public documentReferenceReadRadiologyResultsSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<DocumentReferenceSTU3>>;\n  public documentReferenceReadRadiologyResultsSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<DocumentReferenceSTU3>>;\n  public documentReferenceReadRadiologyResultsSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling documentReferenceReadRadiologyResultsSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<DocumentReferenceSTU3>(\n      'get',\n      `${this.basePath}/STU3/DocumentReference/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param id Search for DocumentReference resources using one or more server IDs (equivalent to one or more Get /DocumentReference/{ID} requests). If _id is included in your search, all other parameters are ignored.\n   * @param _class Refine a search for DocumentReference resources by passing a LOINC code for document class (CCD and encounter supported). The default LOINC code for CCD is 34133-9 - Summarization of Episode Note. The default LOINC code for Encounter is 11506-3 - Subsequent Evaluation Note.\n   * @param patient Search for DocumentReference resources for a specified patient ID. You can use \\&quot;patient\\&quot; or \\&quot;subject\\&quot; equivalently, but they cannot be used at the same time for different references.\n   * @param period Refine a search for DocumentReference resources by specifying a date or date range for the DocumentReference content. Enter dates in ISO 8601 format (YYYY[-MM[-DD[THH:MM[:SS][TZ]]]]). Local server time is assumed if time zone information is not included. Common FHIR operators such as gt, lt, ge, le, &#x3D;, and ap are supported. When no period is specified, a customer setting is used to determine how far to look back. There is also a setting capping lookback. Another setting can limit what encounter types are returned. Encounters without clinical data will not be returned.\n   * @param subject Search for DocumentReference resources for a specified patient ID. You can use \\&quot;patient\\&quot; or \\&quot;subject\\&quot; equivalently, but they cannot be used at the same time for different references.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public documentReferenceSearchGeneratedCCDADSTU2(\n    id?: string,\n    _class?: string,\n    patient?: string,\n    period?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleDocumentReferenceDSTU2>;\n  public documentReferenceSearchGeneratedCCDADSTU2(\n    id?: string,\n    _class?: string,\n    patient?: string,\n    period?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleDocumentReferenceDSTU2>>;\n  public documentReferenceSearchGeneratedCCDADSTU2(\n    id?: string,\n    _class?: string,\n    patient?: string,\n    period?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleDocumentReferenceDSTU2>>;\n  public documentReferenceSearchGeneratedCCDADSTU2(\n    id?: string,\n    _class?: string,\n    patient?: string,\n    period?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (id !== undefined && id !== null) {\n      queryParameters = queryParameters.set('_id', <any>id);\n    }\n    if (_class !== undefined && _class !== null) {\n      queryParameters = queryParameters.set('class', <any>_class);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (period !== undefined && period !== null) {\n      queryParameters = queryParameters.set('period', <any>period);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleDocumentReferenceDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/DocumentReference`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param author FHIR ID for the providers who signed or addended the study.\n   * @param category Must be set to “imaging-result” if specified.\n   * @param date The instant or range of instants when a study was addended or finalized.\n   * @param patient The subject of the report if a patient\n   * @param period The instant when the exam was performed.\n   * @param subject The patient that is the subject of the note.\n   * @param type The LOINC or system code for the radiology result.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public documentReferenceSearchRadiologyResultsR4(\n    author?: string,\n    category?: string,\n    date?: string,\n    patient?: string,\n    period?: string,\n    subject?: string,\n    type?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleDocumentReferenceR4>;\n  public documentReferenceSearchRadiologyResultsR4(\n    author?: string,\n    category?: string,\n    date?: string,\n    patient?: string,\n    period?: string,\n    subject?: string,\n    type?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleDocumentReferenceR4>>;\n  public documentReferenceSearchRadiologyResultsR4(\n    author?: string,\n    category?: string,\n    date?: string,\n    patient?: string,\n    period?: string,\n    subject?: string,\n    type?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleDocumentReferenceR4>>;\n  public documentReferenceSearchRadiologyResultsR4(\n    author?: string,\n    category?: string,\n    date?: string,\n    patient?: string,\n    period?: string,\n    subject?: string,\n    type?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (author !== undefined && author !== null) {\n      queryParameters = queryParameters.set('author', <any>author);\n    }\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (period !== undefined && period !== null) {\n      queryParameters = queryParameters.set('period', <any>period);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n    if (type !== undefined && type !== null) {\n      queryParameters = queryParameters.set('type', <any>type);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleDocumentReferenceR4>(\n      'get',\n      `${this.basePath}/R4/DocumentReference`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param author FHIR ID for the providers who signed or addended the study.\n   * @param _class Must be set to “imaging-result” if specified.\n   * @param indexed The instant or range of instants when a study was addended or finalized.\n   * @param patient FHIR Patient ID. If provided, the search returns all matching results for this patient.\n   * @param period The instant when the exam was performed.\n   * @param subject FHIR Patient ID. If provided, the search returns all matching results for this patient.\n   * @param type LOINC code for the radiology result.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public documentReferenceSearchRadiologyResultsSTU3(\n    author?: string,\n    _class?: string,\n    indexed?: string,\n    patient?: string,\n    period?: string,\n    subject?: string,\n    type?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleDocumentReferenceSTU3>;\n  public documentReferenceSearchRadiologyResultsSTU3(\n    author?: string,\n    _class?: string,\n    indexed?: string,\n    patient?: string,\n    period?: string,\n    subject?: string,\n    type?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleDocumentReferenceSTU3>>;\n  public documentReferenceSearchRadiologyResultsSTU3(\n    author?: string,\n    _class?: string,\n    indexed?: string,\n    patient?: string,\n    period?: string,\n    subject?: string,\n    type?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleDocumentReferenceSTU3>>;\n  public documentReferenceSearchRadiologyResultsSTU3(\n    author?: string,\n    _class?: string,\n    indexed?: string,\n    patient?: string,\n    period?: string,\n    subject?: string,\n    type?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (author !== undefined && author !== null) {\n      queryParameters = queryParameters.set('author', <any>author);\n    }\n    if (_class !== undefined && _class !== null) {\n      queryParameters = queryParameters.set('class', <any>_class);\n    }\n    if (indexed !== undefined && indexed !== null) {\n      queryParameters = queryParameters.set('indexed', <any>indexed);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (period !== undefined && period !== null) {\n      queryParameters = queryParameters.set('period', <any>period);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n    if (type !== undefined && type !== null) {\n      queryParameters = queryParameters.set('type', <any>type);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleDocumentReferenceSTU3>(\n      'get',\n      `${this.basePath}/STU3/DocumentReference`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleEncounterR4 } from '../model/bundleEncounterR4';\nimport { BundleEncounterSTU3 } from '../model/bundleEncounterSTU3';\nimport { EncounterR4 } from '../model/encounterR4';\nimport { EncounterSTU3 } from '../model/encounterSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class EncounterService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The Encounter FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public encounterReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<EncounterR4>;\n  public encounterReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<EncounterR4>>;\n  public encounterReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<EncounterR4>>;\n  public encounterReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling encounterReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<EncounterR4>(\n      'get',\n      `${this.basePath}/R4/Encounter/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The Encounter FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public encounterReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<EncounterSTU3>;\n  public encounterReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<EncounterSTU3>>;\n  public encounterReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<EncounterSTU3>>;\n  public encounterReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling encounterReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<EncounterSTU3>(\n      'get',\n      `${this.basePath}/STU3/Encounter/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param _class Classification of patient encounter. For organizations in the Netherlands, this element includes only the ACT encounter code.\n   * @param date A date range that the encounter takes place.\n   * @param identifier &lt;p&gt;Identifiers by which this encounter is known in the format &amp;lt;code system&amp;gt;|&amp;lt;code&amp;gt;.&lt;/p&gt; &lt;p&gt;This search parameter is available starting in the August 2021 version of Epic.&lt;/p&gt;\n   * @param onlyscannable If \\&quot;true\\&quot;, only scannable encounters are returned in the response. This feature requires a user to have login department context as part of the API request, otherwise error code 59100 is returned.\n   * @param patient Reference to a patient resource.\n   * @param subject Reference to a patient resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public encounterSearchR4(\n    _class: string,\n    date: string,\n    identifier: string,\n    onlyscannable: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleEncounterR4>;\n  public encounterSearchR4(\n    _class: string,\n    date: string,\n    identifier: string,\n    onlyscannable: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleEncounterR4>>;\n  public encounterSearchR4(\n    _class: string,\n    date: string,\n    identifier: string,\n    onlyscannable: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleEncounterR4>>;\n  public encounterSearchR4(\n    _class: string,\n    date: string,\n    identifier: string,\n    onlyscannable: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (_class === null || _class === undefined) {\n      throw new Error(\n        'Required parameter _class was null or undefined when calling encounterSearchR4.'\n      );\n    }\n\n    if (date === null || date === undefined) {\n      throw new Error(\n        'Required parameter date was null or undefined when calling encounterSearchR4.'\n      );\n    }\n\n    if (identifier === null || identifier === undefined) {\n      throw new Error(\n        'Required parameter identifier was null or undefined when calling encounterSearchR4.'\n      );\n    }\n\n    if (onlyscannable === null || onlyscannable === undefined) {\n      throw new Error(\n        'Required parameter onlyscannable was null or undefined when calling encounterSearchR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (_class !== undefined && _class !== null) {\n      queryParameters = queryParameters.set('class', <any>_class);\n    }\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n    if (identifier !== undefined && identifier !== null) {\n      queryParameters = queryParameters.set('identifier', <any>identifier);\n    }\n    if (onlyscannable !== undefined && onlyscannable !== null) {\n      queryParameters = queryParameters.set(\n        'onlyscannable',\n        <any>onlyscannable\n      );\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleEncounterR4>(\n      'get',\n      `${this.basePath}/R4/Encounter`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param identifier &lt;p&gt;Identifiers by which this encounter is known in the format &amp;lt;code system&amp;gt;|&amp;lt;code&amp;gt;.&lt;/p&gt; &lt;p&gt;This search parameter is available starting in the August 2021 version of Epic.&lt;/p&gt;\n   * @param _class Classification of patient encounter. For organizations in the Netherlands, this element includes only the ACT encounter code.\n   * @param date A date range that the encounter takes place.\n   * @param patient Reference to a patient resource.\n   * @param subject Reference to a patient resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public encounterSearchSTU3(\n    identifier: string,\n    _class?: string,\n    date?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleEncounterSTU3>;\n  public encounterSearchSTU3(\n    identifier: string,\n    _class?: string,\n    date?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleEncounterSTU3>>;\n  public encounterSearchSTU3(\n    identifier: string,\n    _class?: string,\n    date?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleEncounterSTU3>>;\n  public encounterSearchSTU3(\n    identifier: string,\n    _class?: string,\n    date?: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (identifier === null || identifier === undefined) {\n      throw new Error(\n        'Required parameter identifier was null or undefined when calling encounterSearchSTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (_class !== undefined && _class !== null) {\n      queryParameters = queryParameters.set('class', <any>_class);\n    }\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n    if (identifier !== undefined && identifier !== null) {\n      queryParameters = queryParameters.set('identifier', <any>identifier);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleEncounterSTU3>(\n      'get',\n      `${this.basePath}/STU3/Encounter`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { EndpointR4 } from '../model/endpointR4';\nimport { EndpointSTU3 } from '../model/endpointSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class EndpointService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID &lt;p&gt;The FHIR ID.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public endpointReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<EndpointR4>;\n  public endpointReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<EndpointR4>>;\n  public endpointReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<EndpointR4>>;\n  public endpointReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling endpointReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<EndpointR4>(\n      'get',\n      `${this.basePath}/R4/Endpoint/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID &lt;p&gt;The FHIR ID.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public endpointReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<EndpointSTU3>;\n  public endpointReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<EndpointSTU3>>;\n  public endpointReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<EndpointSTU3>>;\n  public endpointReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling endpointReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<EndpointSTU3>(\n      'get',\n      `${this.basePath}/STU3/Endpoint/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { EpisodeOfCareR4 } from '../model/episodeOfCareR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class EpisodeOfCareService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR ID for this EpisodeOfCare instance.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public episodeOfCareReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<EpisodeOfCareR4>;\n  public episodeOfCareReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<EpisodeOfCareR4>>;\n  public episodeOfCareReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<EpisodeOfCareR4>>;\n  public episodeOfCareReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling episodeOfCareReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<EpisodeOfCareR4>(\n      'get',\n      `${this.basePath}/R4/EpisodeOfCare/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { ValueSetR4 } from '../model/valueSetR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ExpandR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param context &lt;p&gt;The path to the element in the resource.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Expected format: &amp;lt;ResourceName&amp;gt;.&amp;lt;ElementPath&amp;gt;&lt;/li&gt; &lt;li&gt;Example: DocumentReference.type&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;Epic currently supports the following contexts:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;DocumentReference.type&lt;/li&gt; &lt;li&gt;DocumentReference.docStatus&lt;/li&gt; &lt;/ul&gt;\n   * @param contextdirection &lt;p&gt;Specifies the direction of the interaction with regards to the ValueSet. Options include \\&quot;outgoing\\&quot; or \\&quot;incoming\\&quot;. &lt;/p&gt; &lt;ul&gt; &lt;li&gt;outgoing - for query parameters and response content&lt;/li&gt; &lt;li&gt;incoming - for incoming POST/PUT body&lt;/li&gt; &lt;/ul&gt;\n   * @param filter &lt;p&gt;A filter string used to further refine the ValueSet context to a specific sub-resource based on the resource&#x27;s category element, and in some cases, additional details.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Example: &lt;code&gt;filter&#x3D;category:document-information,workflow:registration, level:encounter,resource:ej5R7X.4RdaFNR5vWdsTpVTtccmkRkWJcKixc5XVY4cQ3&lt;/code&gt; &lt;/ul&gt; &lt;p&gt;Epic currently supports the following filters:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;code&gt;category:clinical-note&lt;/code&gt; &lt;li&gt;&lt;code&gt;category:document-information&lt;/code&gt; &lt;/ul&gt; &lt;p&gt;The following additional filters can be combined with &lt;code&gt;category:document-information&lt;/code&gt; to further refine results:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;code&gt;workflow:general&lt;/code&gt;&lt;/li&gt; &lt;li&gt;&lt;code&gt;workflow:registration&lt;/code&gt;&lt;/li&gt; &lt;li&gt;&lt;code&gt;level:patient&lt;/code&gt;&lt;/li&gt; &lt;li&gt;&lt;code&gt;level:encounter&lt;/code&gt;&lt;/li&gt; &lt;li&gt;&lt;code&gt;level:order&lt;/code&gt;&lt;/li&gt; &lt;li&gt;&lt;code&gt;resource:&amp;lt;patient FHIR ID&amp;gt;&lt;/code&gt;&lt;/li&gt; &lt;li&gt;&lt;code&gt;resource:&amp;lt;encounter FHIR ID&amp;gt;&lt;/code&gt;&lt;/li&gt; &lt;/ul&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public valueSetexpandR4(\n    context: string,\n    contextdirection: string,\n    filter?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ValueSetR4>;\n  public valueSetexpandR4(\n    context: string,\n    contextdirection: string,\n    filter?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ValueSetR4>>;\n  public valueSetexpandR4(\n    context: string,\n    contextdirection: string,\n    filter?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ValueSetR4>>;\n  public valueSetexpandR4(\n    context: string,\n    contextdirection: string,\n    filter?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (context === null || context === undefined) {\n      throw new Error(\n        'Required parameter context was null or undefined when calling valueSetexpandR4.'\n      );\n    }\n\n    if (contextdirection === null || contextdirection === undefined) {\n      throw new Error(\n        'Required parameter contextdirection was null or undefined when calling valueSetexpandR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (context !== undefined && context !== null) {\n      queryParameters = queryParameters.set('context', <any>context);\n    }\n    if (contextdirection !== undefined && contextdirection !== null) {\n      queryParameters = queryParameters.set(\n        'contextdirection',\n        <any>contextdirection\n      );\n    }\n    if (filter !== undefined && filter !== null) {\n      queryParameters = queryParameters.set('filter', <any>filter);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ValueSetR4>(\n      'get',\n      `${this.basePath}/R4/ValueSet/$expand`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleExplanationOfBenefitR4 } from '../model/bundleExplanationOfBenefitR4';\nimport { ExplanationOfBenefitR4 } from '../model/explanationOfBenefitR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ExplanationOfBenefitService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The FHIR ID for an ExplanationOfBenefit resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public explanationOfBenefitReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ExplanationOfBenefitR4>;\n  public explanationOfBenefitReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ExplanationOfBenefitR4>>;\n  public explanationOfBenefitReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ExplanationOfBenefitR4>>;\n  public explanationOfBenefitReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling explanationOfBenefitReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ExplanationOfBenefitR4>(\n      'get',\n      `${this.basePath}/R4/ExplanationOfBenefit/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient The patient for whom claims data is being retrieved.\n   * @param created Creation date of the claim.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public explanationOfBenefitSearchR4(\n    patient: string,\n    created?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleExplanationOfBenefitR4>;\n  public explanationOfBenefitSearchR4(\n    patient: string,\n    created?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleExplanationOfBenefitR4>>;\n  public explanationOfBenefitSearchR4(\n    patient: string,\n    created?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleExplanationOfBenefitR4>>;\n  public explanationOfBenefitSearchR4(\n    patient: string,\n    created?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling explanationOfBenefitSearchR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (created !== undefined && created !== null) {\n      queryParameters = queryParameters.set('created', <any>created);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleExplanationOfBenefitR4>(\n      'get',\n      `${this.basePath}/R4/ExplanationOfBenefit`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleFamilyMemberHistoryDSTU2 } from '../model/bundleFamilyMemberHistoryDSTU2';\nimport { FamilyMemberHistoryR4 } from '../model/familyMemberHistoryR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class FamilyMemberHistoryService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR ID for this FamilyMemberHistory instance\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public familyMemberHistoryReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<FamilyMemberHistoryR4>;\n  public familyMemberHistoryReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<FamilyMemberHistoryR4>>;\n  public familyMemberHistoryReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<FamilyMemberHistoryR4>>;\n  public familyMemberHistoryReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling familyMemberHistoryReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<FamilyMemberHistoryR4>(\n      'get',\n      `${this.basePath}/R4/FamilyMemberHistory/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient The Patient resource with the associated FamilyMemberHistory.\n   * @param subject The Patient resource with the associated FamilyMemberHistory.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public familyMemberHistorySearchDSTU2(\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleFamilyMemberHistoryDSTU2>;\n  public familyMemberHistorySearchDSTU2(\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleFamilyMemberHistoryDSTU2>>;\n  public familyMemberHistorySearchDSTU2(\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleFamilyMemberHistoryDSTU2>>;\n  public familyMemberHistorySearchDSTU2(\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleFamilyMemberHistoryDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/FamilyMemberHistory`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleFlagR4 } from '../model/bundleFlagR4';\nimport { BundleFlagSTU3 } from '../model/bundleFlagSTU3';\nimport { FlagR4 } from '../model/flagR4';\nimport { FlagSTU3 } from '../model/flagSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class FlagService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The Flag FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public flagReadPatientFYIR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<FlagR4>;\n  public flagReadPatientFYIR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<FlagR4>>;\n  public flagReadPatientFYIR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<FlagR4>>;\n  public flagReadPatientFYIR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling flagReadPatientFYIR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<FlagR4>(\n      'get',\n      `${this.basePath}/R4/Flag/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The Flag FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public flagReadPatientFYISTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<FlagSTU3>;\n  public flagReadPatientFYISTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<FlagSTU3>>;\n  public flagReadPatientFYISTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<FlagSTU3>>;\n  public flagReadPatientFYISTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling flagReadPatientFYISTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<FlagSTU3>(\n      'get',\n      `${this.basePath}/STU3/Flag/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param category Always \\&quot;infection\\&quot; for this web service.\n   * @param patient Reference to a Patient resource the Flag is for.\n   * @param status The status of the infection: active or inactive.\n   * @param subject Reference to a Patient resource the Flag is for.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public flagSearchInfectionSTU3(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleFlagSTU3>;\n  public flagSearchInfectionSTU3(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleFlagSTU3>>;\n  public flagSearchInfectionSTU3(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleFlagSTU3>>;\n  public flagSearchInfectionSTU3(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleFlagSTU3>(\n      'get',\n      `${this.basePath}/STU3/Flag`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param category Always \\&quot;isolation\\&quot; for this sub-resource.\n   * @param encounter Reference to an Encounter resource associated with an isolation. If no encounter is specified, all isolations are returned.\n   * @param patient Reference to a patient resource the isolation is for.\n   * @param status Status of the isolation. If no status is specified, all isolations are returned.\n   * @param subject Reference to a patient resource the isolation is for.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public flagSearchIsolationR4(\n    category?: string,\n    encounter?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleFlagR4>;\n  public flagSearchIsolationR4(\n    category?: string,\n    encounter?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleFlagR4>>;\n  public flagSearchIsolationR4(\n    category?: string,\n    encounter?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleFlagR4>>;\n  public flagSearchIsolationR4(\n    category?: string,\n    encounter?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (encounter !== undefined && encounter !== null) {\n      queryParameters = queryParameters.set('encounter', <any>encounter);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleFlagR4>(\n      'get',\n      `${this.basePath}/R4/Flag`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleGoalDSTU2 } from '../model/bundleGoalDSTU2';\nimport { BundleGoalR4 } from '../model/bundleGoalR4';\nimport { BundleGoalSTU3 } from '../model/bundleGoalSTU3';\nimport { GoalDSTU2 } from '../model/goalDSTU2';\nimport { GoalR4 } from '../model/goalR4';\nimport { GoalSTU3 } from '../model/goalSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class GoalService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param body payload\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public goalCreatePatientSTU3(\n    body: GoalSTU3,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<GoalSTU3>;\n  public goalCreatePatientSTU3(\n    body: GoalSTU3,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<GoalSTU3>>;\n  public goalCreatePatientSTU3(\n    body: GoalSTU3,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<GoalSTU3>>;\n  public goalCreatePatientSTU3(\n    body: GoalSTU3,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (body === null || body === undefined) {\n      throw new Error(\n        'Required parameter body was null or undefined when calling goalCreatePatientSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = ['application/json'];\n    const httpContentTypeSelected: string | undefined =\n      this.configuration.selectHeaderContentType(consumes);\n    if (httpContentTypeSelected != undefined) {\n      headers = headers.set('Content-Type', httpContentTypeSelected);\n    }\n\n    return this.httpClient.request<GoalSTU3>(\n      'post',\n      `${this.basePath}/STU3/Goal`,\n      {\n        body: body,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The Goal FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public goalReadPatientDSTU2(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<GoalDSTU2>;\n  public goalReadPatientDSTU2(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<GoalDSTU2>>;\n  public goalReadPatientDSTU2(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<GoalDSTU2>>;\n  public goalReadPatientDSTU2(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling goalReadPatientDSTU2.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<GoalDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Goal/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The Goal FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public goalReadPatientR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<GoalR4>;\n  public goalReadPatientR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<GoalR4>>;\n  public goalReadPatientR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<GoalR4>>;\n  public goalReadPatientR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling goalReadPatientR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<GoalR4>(\n      'get',\n      `${this.basePath}/R4/Goal/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The Goal FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public goalReadPatientSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<GoalSTU3>;\n  public goalReadPatientSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<GoalSTU3>>;\n  public goalReadPatientSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<GoalSTU3>>;\n  public goalReadPatientSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling goalReadPatientSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<GoalSTU3>(\n      'get',\n      `${this.basePath}/STU3/Goal/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param category Based on  the category number by default, with Title and then Synonym as backups. Can use SNOMED if OID is specified and a mapping table has been built by the Epic community member.\n   * @param patient Associated Patient FHIR Resource ID.\n   * @param status &lt;p&gt;The current status of the goal. The following values are supported:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;in-progress,&lt;/li&gt; &lt;li&gt;achieved&lt;/li&gt; &lt;li&gt;cancelled&lt;/li&gt; &lt;/ul&gt;\n   * @param subject Associated Patient FHIR Resource ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public goalSearchPatientDSTU2(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleGoalDSTU2>;\n  public goalSearchPatientDSTU2(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleGoalDSTU2>>;\n  public goalSearchPatientDSTU2(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleGoalDSTU2>>;\n  public goalSearchPatientDSTU2(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleGoalDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Goal`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param category Based on  the category number by default, with Title and then Synonym as backups. Can use SNOMED if OID is specified and a mapping table has been built by the Epic community member. Ex: treatment, dietary, or behavioral.\n   * @param lifecycleStatus &lt;p&gt;The current status of the goal.  Previously called \\&quot;status\\&quot; in STU3. The following values are supported:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;active&lt;/li&gt; &lt;li&gt;completed&lt;/li&gt; &lt;li&gt;cancelled&lt;/li&gt; &lt;/ul&gt;\n   * @param patient Associated Patient FHIR Resource ID.\n   * @param subject Associated Patient FHIR Resource ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public goalSearchPatientR4(\n    category?: string,\n    lifecycleStatus?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleGoalR4>;\n  public goalSearchPatientR4(\n    category?: string,\n    lifecycleStatus?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleGoalR4>>;\n  public goalSearchPatientR4(\n    category?: string,\n    lifecycleStatus?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleGoalR4>>;\n  public goalSearchPatientR4(\n    category?: string,\n    lifecycleStatus?: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (lifecycleStatus !== undefined && lifecycleStatus !== null) {\n      queryParameters = queryParameters.set(\n        'lifecycle-status',\n        <any>lifecycleStatus\n      );\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleGoalR4>(\n      'get',\n      `${this.basePath}/R4/Goal`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param category Based on  the category number by default, with Title and then Synonym as backups. Can use SNOMED if OID is specified and a mapping table has been built by the Epic community member. Ex: treatment, dietary, or behavioral.\n   * @param patient Associated Patient FHIR Resource ID.\n   * @param status &lt;p&gt;The current status of the goal. The following values are supported:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;in-progress,&lt;/li&gt; &lt;li&gt;achieved&lt;/li&gt; &lt;li&gt;cancelled&lt;/li&gt; &lt;/ul&gt;\n   * @param subject Associated Patient FHIR Resource ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public goalSearchPatientSTU3(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleGoalSTU3>;\n  public goalSearchPatientSTU3(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleGoalSTU3>>;\n  public goalSearchPatientSTU3(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleGoalSTU3>>;\n  public goalSearchPatientSTU3(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleGoalSTU3>(\n      'get',\n      `${this.basePath}/STU3/Goal`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleImmunizationDSTU2 } from '../model/bundleImmunizationDSTU2';\nimport { BundleImmunizationR4 } from '../model/bundleImmunizationR4';\nimport { BundleImmunizationSTU3 } from '../model/bundleImmunizationSTU3';\nimport { ImmunizationDSTU2 } from '../model/immunizationDSTU2';\nimport { ImmunizationR4 } from '../model/immunizationR4';\nimport { ImmunizationSTU3 } from '../model/immunizationSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ImmunizationService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID Immunization FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public immunizationReadDSTU2(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ImmunizationDSTU2>;\n  public immunizationReadDSTU2(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ImmunizationDSTU2>>;\n  public immunizationReadDSTU2(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ImmunizationDSTU2>>;\n  public immunizationReadDSTU2(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling immunizationReadDSTU2.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ImmunizationDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Immunization/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The Immunization FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public immunizationReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ImmunizationR4>;\n  public immunizationReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ImmunizationR4>>;\n  public immunizationReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ImmunizationR4>>;\n  public immunizationReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling immunizationReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ImmunizationR4>(\n      'get',\n      `${this.basePath}/R4/Immunization/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The Immunization FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public immunizationReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ImmunizationSTU3>;\n  public immunizationReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ImmunizationSTU3>>;\n  public immunizationReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ImmunizationSTU3>>;\n  public immunizationReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling immunizationReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ImmunizationSTU3>(\n      'get',\n      `${this.basePath}/STU3/Immunization/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param date Vaccination administration date.\n   * @param patient Reference to the Patient who was immunized.\n   * @param status &lt;p&gt;Status of the Immunization. Possible values are:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;completed&lt;/li&gt; &lt;li&gt;entered-in-error&lt;/li&gt; &lt;li&gt;in-progress&lt;/li&gt; &lt;li&gt;on-hold&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;If not provided, will default to include only \\&quot;completed\\&quot; and \\&quot;on-hold\\&quot; immunizations.&lt;/p&gt;\n   * @param subject Reference to the Patient who was immunized.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public immunizationSearchDSTU2(\n    date?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleImmunizationDSTU2>;\n  public immunizationSearchDSTU2(\n    date?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleImmunizationDSTU2>>;\n  public immunizationSearchDSTU2(\n    date?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleImmunizationDSTU2>>;\n  public immunizationSearchDSTU2(\n    date?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleImmunizationDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Immunization`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient Reference to the Patient who was immunized.\n   * @param date Vaccination administration date.\n   * @param status &lt;p&gt;Status of the Immunization. Possible values are:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;completed&lt;/li&gt; &lt;li&gt;entered-in-error&lt;/li&gt; &lt;li&gt;not-done&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;*Note: incomplete Immunizations are not supported.&lt;/p&gt; &lt;p&gt; If no status is specified, all statuses are returned.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public immunizationSearchR4(\n    patient: string,\n    date?: string,\n    status?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleImmunizationR4>;\n  public immunizationSearchR4(\n    patient: string,\n    date?: string,\n    status?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleImmunizationR4>>;\n  public immunizationSearchR4(\n    patient: string,\n    date?: string,\n    status?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleImmunizationR4>>;\n  public immunizationSearchR4(\n    patient: string,\n    date?: string,\n    status?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling immunizationSearchR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleImmunizationR4>(\n      'get',\n      `${this.basePath}/R4/Immunization`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient Reference to the Patient who was immunized.\n   * @param date Vaccination administration date.\n   * @param notgiven Flag for whether the immunization was given. If not provided, defaults to \\&quot;false\\&quot; to return only given immunizations.\n   * @param status &lt;p&gt;Immunization event status. “Completed” is the only supported value, and this value is used by default if no status value is specified.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public immunizationSearchSTU3(\n    patient: string,\n    date?: string,\n    notgiven?: string,\n    status?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleImmunizationSTU3>;\n  public immunizationSearchSTU3(\n    patient: string,\n    date?: string,\n    notgiven?: string,\n    status?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleImmunizationSTU3>>;\n  public immunizationSearchSTU3(\n    patient: string,\n    date?: string,\n    notgiven?: string,\n    status?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleImmunizationSTU3>>;\n  public immunizationSearchSTU3(\n    patient: string,\n    date?: string,\n    notgiven?: string,\n    status?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling immunizationSearchSTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n    if (notgiven !== undefined && notgiven !== null) {\n      queryParameters = queryParameters.set('notgiven', <any>notgiven);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleImmunizationSTU3>(\n      'get',\n      `${this.basePath}/STU3/Immunization`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleImmunizationRecommendationR4 } from '../model/bundleImmunizationRecommendationR4';\nimport { BundleImmunizationRecommendationSTU3 } from '../model/bundleImmunizationRecommendationSTU3';\nimport { ImmunizationRecommendationR4 } from '../model/immunizationRecommendationR4';\nimport { ImmunizationRecommendationSTU3 } from '../model/immunizationRecommendationSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ImmunizationRecommendationService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The FHIR ID of the recommended immunization order.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public immunizationRecommendationReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ImmunizationRecommendationR4>;\n  public immunizationRecommendationReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ImmunizationRecommendationR4>>;\n  public immunizationRecommendationReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ImmunizationRecommendationR4>>;\n  public immunizationRecommendationReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling immunizationRecommendationReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ImmunizationRecommendationR4>(\n      'get',\n      `${this.basePath}/R4/ImmunizationRecommendation/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The FHIR ID of the recommended immunization order.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public immunizationRecommendationReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ImmunizationRecommendationSTU3>;\n  public immunizationRecommendationReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ImmunizationRecommendationSTU3>>;\n  public immunizationRecommendationReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ImmunizationRecommendationSTU3>>;\n  public immunizationRecommendationReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling immunizationRecommendationReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ImmunizationRecommendationSTU3>(\n      'get',\n      `${this.basePath}/STU3/ImmunizationRecommendation/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient The patient associated with the immunization recommendation. Reference to the Patient resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public immunizationRecommendationSearchR4(\n    patient: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleImmunizationRecommendationR4>;\n  public immunizationRecommendationSearchR4(\n    patient: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleImmunizationRecommendationR4>>;\n  public immunizationRecommendationSearchR4(\n    patient: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleImmunizationRecommendationR4>>;\n  public immunizationRecommendationSearchR4(\n    patient: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling immunizationRecommendationSearchR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleImmunizationRecommendationR4>(\n      'get',\n      `${this.basePath}/R4/ImmunizationRecommendation`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient The patient associated with the immunization recommendation. Reference to the Patient resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public immunizationRecommendationSearchSTU3(\n    patient: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleImmunizationRecommendationSTU3>;\n  public immunizationRecommendationSearchSTU3(\n    patient: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleImmunizationRecommendationSTU3>>;\n  public immunizationRecommendationSearchSTU3(\n    patient: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleImmunizationRecommendationSTU3>>;\n  public immunizationRecommendationSearchSTU3(\n    patient: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling immunizationRecommendationSearchSTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleImmunizationRecommendationSTU3>(\n      'get',\n      `${this.basePath}/STU3/ImmunizationRecommendation`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleObservationSTU3 } from '../model/bundleObservationSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class LastnSocialHistorySTU3Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param code &lt;p&gt;Use the following SNOMED code to search for living situation:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;365508006: Living situation&lt;/li&gt;&lt;/ul&gt;\n   * @param category Use \\&quot;social-history\\&quot; to search for living situation observations.\n   * @param max The maximum amount of responses for each subtype of the category.\n   * @param patient Reference to a patient resource.\n   * @param subject The reference to a patient resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public observationlastnSocialHistorySTU3(\n    code: string,\n    category?: string,\n    max?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleObservationSTU3>;\n  public observationlastnSocialHistorySTU3(\n    code: string,\n    category?: string,\n    max?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleObservationSTU3>>;\n  public observationlastnSocialHistorySTU3(\n    code: string,\n    category?: string,\n    max?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleObservationSTU3>>;\n  public observationlastnSocialHistorySTU3(\n    code: string,\n    category?: string,\n    max?: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (code === null || code === undefined) {\n      throw new Error(\n        'Required parameter code was null or undefined when calling observationlastnSocialHistorySTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (code !== undefined && code !== null) {\n      queryParameters = queryParameters.set('code', <any>code);\n    }\n    if (max !== undefined && max !== null) {\n      queryParameters = queryParameters.set('max', <any>max);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleObservationSTU3>(\n      'get',\n      `${this.basePath}/STU3/Observation/$lastn`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleListR4 } from '../model/bundleListR4';\nimport { BundleListSTU3 } from '../model/bundleListSTU3';\nimport { ListR4 } from '../model/listR4';\nimport { ListSTU3 } from '../model/listSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ListService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The encoded list ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public listReadPatientsWithQuestionnairesDueSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ListSTU3>;\n  public listReadPatientsWithQuestionnairesDueSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ListSTU3>>;\n  public listReadPatientsWithQuestionnairesDueSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ListSTU3>>;\n  public listReadPatientsWithQuestionnairesDueSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling listReadPatientsWithQuestionnairesDueSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ListSTU3>(\n      'get',\n      `${this.basePath}/STU3/List/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The List FHIR ID\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public listReadProblemsR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ListR4>;\n  public listReadProblemsR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ListR4>>;\n  public listReadProblemsR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ListR4>>;\n  public listReadProblemsR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling listReadProblemsR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ListR4>(\n      'get',\n      `${this.basePath}/R4/List/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param code The code representing the type of list to search. Must be \\&quot;medications\\&quot;.\n   * @param encounter Reference to the Encounter resource with which the List is associated.\n   * @param patient The Patient resource with whom the List is associated.\n   * @param subject Reference to the Patient resource with whom the List is associated.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public listSearchMedicationsR4(\n    code?: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleListR4>;\n  public listSearchMedicationsR4(\n    code?: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleListR4>>;\n  public listSearchMedicationsR4(\n    code?: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleListR4>>;\n  public listSearchMedicationsR4(\n    code?: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (code !== undefined && code !== null) {\n      queryParameters = queryParameters.set('code', <any>code);\n    }\n    if (encounter !== undefined && encounter !== null) {\n      queryParameters = queryParameters.set('encounter', <any>encounter);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleListR4>(\n      'get',\n      `${this.basePath}/R4/List`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param code Always set to \\&quot;patientswithquestionnairesduelist\\&quot;\n   * @param date Date by which the questionnaires are due.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public listSearchPatientsWithQuestionnairesDueSTU3(\n    code: string,\n    date: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleListSTU3>;\n  public listSearchPatientsWithQuestionnairesDueSTU3(\n    code: string,\n    date: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleListSTU3>>;\n  public listSearchPatientsWithQuestionnairesDueSTU3(\n    code: string,\n    date: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleListSTU3>>;\n  public listSearchPatientsWithQuestionnairesDueSTU3(\n    code: string,\n    date: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (code === null || code === undefined) {\n      throw new Error(\n        'Required parameter code was null or undefined when calling listSearchPatientsWithQuestionnairesDueSTU3.'\n      );\n    }\n\n    if (date === null || date === undefined) {\n      throw new Error(\n        'Required parameter date was null or undefined when calling listSearchPatientsWithQuestionnairesDueSTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (code !== undefined && code !== null) {\n      queryParameters = queryParameters.set('code', <any>code);\n    }\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleListSTU3>(\n      'get',\n      `${this.basePath}/STU3/List`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleLocationR4 } from '../model/bundleLocationR4';\nimport { LocationR4 } from '../model/locationR4';\nimport { LocationSTU3 } from '../model/locationSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class LocationService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The Location FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public locationReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<LocationR4>;\n  public locationReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<LocationR4>>;\n  public locationReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<LocationR4>>;\n  public locationReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling locationReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<LocationR4>(\n      'get',\n      `${this.basePath}/R4/Location/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The Location FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public locationReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<LocationSTU3>;\n  public locationReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<LocationSTU3>>;\n  public locationReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<LocationSTU3>>;\n  public locationReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling locationReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<LocationSTU3>(\n      'get',\n      `${this.basePath}/STU3/Location/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public locationSearchR4(\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleLocationR4>;\n  public locationSearchR4(\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleLocationR4>>;\n  public locationSearchR4(\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleLocationR4>>;\n  public locationSearchR4(\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleLocationR4>(\n      'get',\n      `${this.basePath}/R4/Location`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleMedicationDSTU2 } from '../model/bundleMedicationDSTU2';\nimport { BundleMedicationR4 } from '../model/bundleMedicationR4';\nimport { MedicationDSTU2 } from '../model/medicationDSTU2';\nimport { MedicationR4 } from '../model/medicationR4';\nimport { MedicationSTU3 } from '../model/medicationSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class MedicationService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID &lt;p&gt;The FHIR ID referencing a medication.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationReadDSTU2(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<MedicationDSTU2>;\n  public medicationReadDSTU2(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<MedicationDSTU2>>;\n  public medicationReadDSTU2(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<MedicationDSTU2>>;\n  public medicationReadDSTU2(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling medicationReadDSTU2.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<MedicationDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Medication/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID &lt;p&gt;The FHIR ID referencing a medication.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<MedicationR4>;\n  public medicationReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<MedicationR4>>;\n  public medicationReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<MedicationR4>>;\n  public medicationReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling medicationReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<MedicationR4>(\n      'get',\n      `${this.basePath}/R4/Medication/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID &lt;p&gt;The FHIR ID referencing a medication.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<MedicationSTU3>;\n  public medicationReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<MedicationSTU3>>;\n  public medicationReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<MedicationSTU3>>;\n  public medicationReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling medicationReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<MedicationSTU3>(\n      'get',\n      `${this.basePath}/STU3/Medication/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param id &lt;p&gt;The FHIR ID referencing a medication.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationSearchDSTU2(\n    id: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleMedicationDSTU2>;\n  public medicationSearchDSTU2(\n    id: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleMedicationDSTU2>>;\n  public medicationSearchDSTU2(\n    id: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleMedicationDSTU2>>;\n  public medicationSearchDSTU2(\n    id: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (id === null || id === undefined) {\n      throw new Error(\n        'Required parameter id was null or undefined when calling medicationSearchDSTU2.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (id !== undefined && id !== null) {\n      queryParameters = queryParameters.set('_id', <any>id);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleMedicationDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Medication`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationSearchR4(\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleMedicationR4>;\n  public medicationSearchR4(\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleMedicationR4>>;\n  public medicationSearchR4(\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleMedicationR4>>;\n  public medicationSearchR4(\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleMedicationR4>(\n      'get',\n      `${this.basePath}/R4/Medication`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleMedicationDispenseR4 } from '../model/bundleMedicationDispenseR4';\nimport { BundleMedicationDispenseSTU3 } from '../model/bundleMedicationDispenseSTU3';\nimport { MedicationDispenseR4 } from '../model/medicationDispenseR4';\nimport { MedicationDispenseSTU3 } from '../model/medicationDispenseSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class MedicationDispenseService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The MedicationDispense FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationDispenseReadVerifiedOrdersR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<MedicationDispenseR4>;\n  public medicationDispenseReadVerifiedOrdersR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<MedicationDispenseR4>>;\n  public medicationDispenseReadVerifiedOrdersR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<MedicationDispenseR4>>;\n  public medicationDispenseReadVerifiedOrdersR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling medicationDispenseReadVerifiedOrdersR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<MedicationDispenseR4>(\n      'get',\n      `${this.basePath}/R4/MedicationDispense/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The MedicationDispense FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationDispenseReadVerifiedOrdersSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<MedicationDispenseSTU3>;\n  public medicationDispenseReadVerifiedOrdersSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<MedicationDispenseSTU3>>;\n  public medicationDispenseReadVerifiedOrdersSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<MedicationDispenseSTU3>>;\n  public medicationDispenseReadVerifiedOrdersSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling medicationDispenseReadVerifiedOrdersSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<MedicationDispenseSTU3>(\n      'get',\n      `${this.basePath}/STU3/MedicationDispense/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient The Patient FHIR ID.\n   * @param subject The Patient FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationDispenseSearchVerifiedOrdersR4(\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleMedicationDispenseR4>;\n  public medicationDispenseSearchVerifiedOrdersR4(\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleMedicationDispenseR4>>;\n  public medicationDispenseSearchVerifiedOrdersR4(\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleMedicationDispenseR4>>;\n  public medicationDispenseSearchVerifiedOrdersR4(\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleMedicationDispenseR4>(\n      'get',\n      `${this.basePath}/R4/MedicationDispense`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient The FHIR Patient ID.\n   * @param subject The FHIR Patient ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationDispenseSearchVerifiedOrdersSTU3(\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleMedicationDispenseSTU3>;\n  public medicationDispenseSearchVerifiedOrdersSTU3(\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleMedicationDispenseSTU3>>;\n  public medicationDispenseSearchVerifiedOrdersSTU3(\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleMedicationDispenseSTU3>>;\n  public medicationDispenseSearchVerifiedOrdersSTU3(\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleMedicationDispenseSTU3>(\n      'get',\n      `${this.basePath}/STU3/MedicationDispense`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleMedicationOrderDSTU2 } from '../model/bundleMedicationOrderDSTU2';\nimport { MedicationOrderDSTU2 } from '../model/medicationOrderDSTU2';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class MedicationOrderService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR ID of the MedicationOrder resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationOrderReadDSTU2(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<MedicationOrderDSTU2>;\n  public medicationOrderReadDSTU2(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<MedicationOrderDSTU2>>;\n  public medicationOrderReadDSTU2(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<MedicationOrderDSTU2>>;\n  public medicationOrderReadDSTU2(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling medicationOrderReadDSTU2.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<MedicationOrderDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/MedicationOrder/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient FHIR ID for a patient to list dispenses for.\n   * @param subject FHIR ID for a patient to list dispenses for.\n   * @param id FHIR ID of the MedicationOrder resource(s). If _id is included in the search, all other parameters are ignored.\n   * @param status By default, active medications are returned. Statuses of completed, on-hold, and stopped can also be specified.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationOrderSearchDSTU2(\n    patient: string,\n    subject: string,\n    id?: string,\n    status?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleMedicationOrderDSTU2>;\n  public medicationOrderSearchDSTU2(\n    patient: string,\n    subject: string,\n    id?: string,\n    status?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleMedicationOrderDSTU2>>;\n  public medicationOrderSearchDSTU2(\n    patient: string,\n    subject: string,\n    id?: string,\n    status?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleMedicationOrderDSTU2>>;\n  public medicationOrderSearchDSTU2(\n    patient: string,\n    subject: string,\n    id?: string,\n    status?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling medicationOrderSearchDSTU2.'\n      );\n    }\n\n    if (subject === null || subject === undefined) {\n      throw new Error(\n        'Required parameter subject was null or undefined when calling medicationOrderSearchDSTU2.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (id !== undefined && id !== null) {\n      queryParameters = queryParameters.set('_id', <any>id);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleMedicationOrderDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/MedicationOrder`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleMedicationRequestR4 } from '../model/bundleMedicationRequestR4';\nimport { BundleMedicationRequestSTU3 } from '../model/bundleMedicationRequestSTU3';\nimport { MedicationRequestR4 } from '../model/medicationRequestR4';\nimport { MedicationRequestSTU3 } from '../model/medicationRequestSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class MedicationRequestService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID A medicationRequest FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationRequestReadOrdersR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<MedicationRequestR4>;\n  public medicationRequestReadOrdersR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<MedicationRequestR4>>;\n  public medicationRequestReadOrdersR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<MedicationRequestR4>>;\n  public medicationRequestReadOrdersR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling medicationRequestReadOrdersR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<MedicationRequestR4>(\n      'get',\n      `${this.basePath}/R4/MedicationRequest/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID A medicationRequest FHIR ID\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationRequestReadOrdersSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<MedicationRequestSTU3>;\n  public medicationRequestReadOrdersSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<MedicationRequestSTU3>>;\n  public medicationRequestReadOrdersSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<MedicationRequestSTU3>>;\n  public medicationRequestReadOrdersSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling medicationRequestReadOrdersSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<MedicationRequestSTU3>(\n      'get',\n      `${this.basePath}/STU3/MedicationRequest/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param authoredon This parameter is allowed, but ignored.\n   * @param category &lt;p&gt;The category of medication orders to search for. By default all categories are searched.&lt;/p&gt; Supported categories: &lt;ul&gt; &lt;li&gt;Inpatient&lt;/li&gt; &lt;li&gt;Outpatient (those administered in the clinic - CAMS)&lt;/li&gt; &lt;li&gt;Community (prescriptions)&lt;/li&gt; &lt;/ul&gt;\n   * @param intent Only ‘order’ and ‘plan’ are supported.\n   * @param status &lt;p&gt;The status for medication orders. By default, all statuses are returned.&lt;/p&gt; Supported statuses: &lt;ul&gt; &lt;li&gt;On-hold&lt;/li&gt; &lt;li&gt;Completed&lt;/li&gt; &lt;li&gt;Stopped&lt;/li&gt; &lt;li&gt;Active&lt;/li&gt; &lt;/ul&gt;\n   * @param patient The FHIR patient ID.\n   * @param subject The FHIR patient ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationRequestSearchOrdersR4(\n    authoredon: string,\n    category: string,\n    intent: string,\n    status: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleMedicationRequestR4>;\n  public medicationRequestSearchOrdersR4(\n    authoredon: string,\n    category: string,\n    intent: string,\n    status: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleMedicationRequestR4>>;\n  public medicationRequestSearchOrdersR4(\n    authoredon: string,\n    category: string,\n    intent: string,\n    status: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleMedicationRequestR4>>;\n  public medicationRequestSearchOrdersR4(\n    authoredon: string,\n    category: string,\n    intent: string,\n    status: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (authoredon === null || authoredon === undefined) {\n      throw new Error(\n        'Required parameter authoredon was null or undefined when calling medicationRequestSearchOrdersR4.'\n      );\n    }\n\n    if (category === null || category === undefined) {\n      throw new Error(\n        'Required parameter category was null or undefined when calling medicationRequestSearchOrdersR4.'\n      );\n    }\n\n    if (intent === null || intent === undefined) {\n      throw new Error(\n        'Required parameter intent was null or undefined when calling medicationRequestSearchOrdersR4.'\n      );\n    }\n\n    if (status === null || status === undefined) {\n      throw new Error(\n        'Required parameter status was null or undefined when calling medicationRequestSearchOrdersR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (authoredon !== undefined && authoredon !== null) {\n      queryParameters = queryParameters.set('authoredon', <any>authoredon);\n    }\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (intent !== undefined && intent !== null) {\n      queryParameters = queryParameters.set('intent', <any>intent);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleMedicationRequestR4>(\n      'get',\n      `${this.basePath}/R4/MedicationRequest`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param authoredon This parameter is allowed, but ignored.\n   * @param category &lt;p&gt;The category of medication orders to search for. By default all categories are searched.&lt;/p&gt; &lt;br&gt; &lt;p&gt;Supported categories:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;inpatient&lt;/li&gt; &lt;li&gt;outpatient&lt;/li&gt; &lt;li&gt;community&lt;/li&gt; &lt;li&gt;patientspecified&lt;/li&gt;&lt;/ul&gt;\n   * @param date A parameter\n   * @param patient The FHIR Patient ID. Either this element or Subject is required.\n   * @param status &lt;p&gt;The status for medication orders. By default, active is assumed. Active must be present in all searches (i.e. you cannot search for just completed meds).&lt;/p&gt; &lt;br&gt; &lt;p&gt;Supported statuses:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;On-hold&lt;/li&gt; &lt;li&gt;Completed&lt;/li&gt; &lt;li&gt;Stopped&lt;/li&gt; &lt;li&gt;Active&lt;/li&gt;&lt;/ul&gt;\n   * @param subject The FHIR patient ID. Either this element or Patient is required.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationRequestSearchOrdersSTU3(\n    authoredon: string,\n    category: string,\n    date: string,\n    patient: string,\n    status: string,\n    subject: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleMedicationRequestSTU3>;\n  public medicationRequestSearchOrdersSTU3(\n    authoredon: string,\n    category: string,\n    date: string,\n    patient: string,\n    status: string,\n    subject: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleMedicationRequestSTU3>>;\n  public medicationRequestSearchOrdersSTU3(\n    authoredon: string,\n    category: string,\n    date: string,\n    patient: string,\n    status: string,\n    subject: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleMedicationRequestSTU3>>;\n  public medicationRequestSearchOrdersSTU3(\n    authoredon: string,\n    category: string,\n    date: string,\n    patient: string,\n    status: string,\n    subject: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (authoredon === null || authoredon === undefined) {\n      throw new Error(\n        'Required parameter authoredon was null or undefined when calling medicationRequestSearchOrdersSTU3.'\n      );\n    }\n\n    if (category === null || category === undefined) {\n      throw new Error(\n        'Required parameter category was null or undefined when calling medicationRequestSearchOrdersSTU3.'\n      );\n    }\n\n    if (date === null || date === undefined) {\n      throw new Error(\n        'Required parameter date was null or undefined when calling medicationRequestSearchOrdersSTU3.'\n      );\n    }\n\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling medicationRequestSearchOrdersSTU3.'\n      );\n    }\n\n    if (status === null || status === undefined) {\n      throw new Error(\n        'Required parameter status was null or undefined when calling medicationRequestSearchOrdersSTU3.'\n      );\n    }\n\n    if (subject === null || subject === undefined) {\n      throw new Error(\n        'Required parameter subject was null or undefined when calling medicationRequestSearchOrdersSTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (authoredon !== undefined && authoredon !== null) {\n      queryParameters = queryParameters.set('authoredon', <any>authoredon);\n    }\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleMedicationRequestSTU3>(\n      'get',\n      `${this.basePath}/STU3/MedicationRequest`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleMedicationStatementDSTU2 } from '../model/bundleMedicationStatementDSTU2';\nimport { BundleMedicationStatementSTU3 } from '../model/bundleMedicationStatementSTU3';\nimport { MedicationStatementDSTU2 } from '../model/medicationStatementDSTU2';\nimport { MedicationStatementSTU3 } from '../model/medicationStatementSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class MedicationStatementService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The FHIR ID of the MedicationStatement resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationStatementReadDSTU2(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<MedicationStatementDSTU2>;\n  public medicationStatementReadDSTU2(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<MedicationStatementDSTU2>>;\n  public medicationStatementReadDSTU2(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<MedicationStatementDSTU2>>;\n  public medicationStatementReadDSTU2(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling medicationStatementReadDSTU2.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<MedicationStatementDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/MedicationStatement/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The MedicationStatement FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationStatementReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<MedicationStatementSTU3>;\n  public medicationStatementReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<MedicationStatementSTU3>>;\n  public medicationStatementReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<MedicationStatementSTU3>>;\n  public medicationStatementReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling medicationStatementReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<MedicationStatementSTU3>(\n      'get',\n      `${this.basePath}/STU3/MedicationStatement/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient The FHIR resource ID of the linked patient.\n   * @param id The FHIR resource ID of an individual MedicationStatement resource. If specified, other search parameters are ignored.\n   * @param status The status of the order. If a status is not provided in the search, then only medications with an active status are returned. This is to avoid end user confusion and protect patient safety.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationStatementSearchDSTU2(\n    patient: string,\n    id?: string,\n    status?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleMedicationStatementDSTU2>;\n  public medicationStatementSearchDSTU2(\n    patient: string,\n    id?: string,\n    status?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleMedicationStatementDSTU2>>;\n  public medicationStatementSearchDSTU2(\n    patient: string,\n    id?: string,\n    status?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleMedicationStatementDSTU2>>;\n  public medicationStatementSearchDSTU2(\n    patient: string,\n    id?: string,\n    status?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling medicationStatementSearchDSTU2.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (id !== undefined && id !== null) {\n      queryParameters = queryParameters.set('_id', <any>id);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleMedicationStatementDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/MedicationStatement`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient The FHIR Patient ID. Either this element or Subject is required.\n   * @param subject The FHIR patient ID. Either this element or Patient is required.\n   * @param category &lt;p&gt;The category of medication orders to search for. By default all categories are searched.&lt;/p&gt;  Supported categories: &lt;ul&gt; &lt;li&gt;inpatient&lt;/li&gt; &lt;li&gt;outpatient&lt;/li&gt; &lt;li&gt;community&lt;/li&gt; &lt;li&gt;patientspecified&lt;/li&gt;  &lt;p&gt;Starting in February 2022 or November 2021 with special update, organizations in the Netherlands can use the code 6 to search for MedicationUse profiles.&lt;/p&gt;\n   * @param effective Date when patient was taking (or not taking) the medication.\n   * @param status &lt;p&gt;The status for medication orders. By default, active is assumed. Active must be present in all searches (i.e. you cannot search for just completed meds).&lt;/p&gt;  Supported statuses: &lt;ul&gt; &lt;li&gt;On-hold&lt;/li&gt; &lt;li&gt;Completed&lt;/li&gt; &lt;li&gt;Stopped&lt;/li&gt; &lt;li&gt;Active&lt;/li&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationStatementSearchSTU3(\n    patient: string,\n    subject: string,\n    category?: string,\n    effective?: string,\n    status?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleMedicationStatementSTU3>;\n  public medicationStatementSearchSTU3(\n    patient: string,\n    subject: string,\n    category?: string,\n    effective?: string,\n    status?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleMedicationStatementSTU3>>;\n  public medicationStatementSearchSTU3(\n    patient: string,\n    subject: string,\n    category?: string,\n    effective?: string,\n    status?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleMedicationStatementSTU3>>;\n  public medicationStatementSearchSTU3(\n    patient: string,\n    subject: string,\n    category?: string,\n    effective?: string,\n    status?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling medicationStatementSearchSTU3.'\n      );\n    }\n\n    if (subject === null || subject === undefined) {\n      throw new Error(\n        'Required parameter subject was null or undefined when calling medicationStatementSearchSTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (effective !== undefined && effective !== null) {\n      queryParameters = queryParameters.set('effective', <any>effective);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleMedicationStatementSTU3>(\n      'get',\n      `${this.basePath}/STU3/MedicationStatement`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleNutritionOrderR4 } from '../model/bundleNutritionOrderR4';\nimport { BundleNutritionOrderSTU3 } from '../model/bundleNutritionOrderSTU3';\nimport { NutritionOrderR4 } from '../model/nutritionOrderR4';\nimport { NutritionOrderSTU3 } from '../model/nutritionOrderSTU3';\n\nimport { BASE_PATH } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class NutritionOrderService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR identifier for a NutritionOrder resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public nutritionOrderReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<NutritionOrderR4>;\n  public nutritionOrderReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<NutritionOrderR4>>;\n  public nutritionOrderReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<NutritionOrderR4>>;\n  public nutritionOrderReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling nutritionOrderReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<NutritionOrderR4>(\n      'get',\n      `${this.basePath}/R4/NutritionOrder/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR identifier for a NutritionOrder resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public nutritionOrderReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<NutritionOrderSTU3>;\n  public nutritionOrderReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<NutritionOrderSTU3>>;\n  public nutritionOrderReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<NutritionOrderSTU3>>;\n  public nutritionOrderReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling nutritionOrderReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<NutritionOrderSTU3>(\n      'get',\n      `${this.basePath}/STU3/NutritionOrder/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient FHIR identifier for the patient whose nutrition order details are being requested.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public nutritionOrderSearchR4(\n    patient: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleNutritionOrderR4>;\n  public nutritionOrderSearchR4(\n    patient: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleNutritionOrderR4>>;\n  public nutritionOrderSearchR4(\n    patient: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleNutritionOrderR4>>;\n  public nutritionOrderSearchR4(\n    patient: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling nutritionOrderSearchR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleNutritionOrderR4>(\n      'get',\n      `${this.basePath}/R4/NutritionOrder`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient FHIR identifier for the patient whose nutrition order details are being requested.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public nutritionOrderSearchSTU3(\n    patient: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleNutritionOrderSTU3>;\n  public nutritionOrderSearchSTU3(\n    patient: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleNutritionOrderSTU3>>;\n  public nutritionOrderSearchSTU3(\n    patient: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleNutritionOrderSTU3>>;\n  public nutritionOrderSearchSTU3(\n    patient: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling nutritionOrderSearchSTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleNutritionOrderSTU3>(\n      'get',\n      `${this.basePath}/STU3/NutritionOrder`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleObservationDSTU2 } from '../model/bundleObservationDSTU2';\nimport { BundleObservationR4 } from '../model/bundleObservationR4';\nimport { BundleObservationSTU3 } from '../model/bundleObservationSTU3';\nimport { ObservationDSTU2 } from '../model/observationDSTU2';\nimport { ObservationR4 } from '../model/observationR4';\nimport { ObservationSTU3 } from '../model/observationSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ObservationService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param body payload\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public observationCreateVitalsR4(\n    body: ObservationR4,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ObservationR4>;\n  public observationCreateVitalsR4(\n    body: ObservationR4,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ObservationR4>>;\n  public observationCreateVitalsR4(\n    body: ObservationR4,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ObservationR4>>;\n  public observationCreateVitalsR4(\n    body: ObservationR4,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (body === null || body === undefined) {\n      throw new Error(\n        'Required parameter body was null or undefined when calling observationCreateVitalsR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = ['application/json'];\n    const httpContentTypeSelected: string | undefined =\n      this.configuration.selectHeaderContentType(consumes);\n    if (httpContentTypeSelected != undefined) {\n      headers = headers.set('Content-Type', httpContentTypeSelected);\n    }\n\n    return this.httpClient.request<ObservationR4>(\n      'post',\n      `${this.basePath}/R4/Observation`,\n      {\n        body: body,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param body payload\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public observationCreateVitalsSTU3(\n    body: ObservationSTU3,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ObservationSTU3>;\n  public observationCreateVitalsSTU3(\n    body: ObservationSTU3,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ObservationSTU3>>;\n  public observationCreateVitalsSTU3(\n    body: ObservationSTU3,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ObservationSTU3>>;\n  public observationCreateVitalsSTU3(\n    body: ObservationSTU3,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (body === null || body === undefined) {\n      throw new Error(\n        'Required parameter body was null or undefined when calling observationCreateVitalsSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = ['application/json'];\n    const httpContentTypeSelected: string | undefined =\n      this.configuration.selectHeaderContentType(consumes);\n    if (httpContentTypeSelected != undefined) {\n      headers = headers.set('Content-Type', httpContentTypeSelected);\n    }\n\n    return this.httpClient.request<ObservationSTU3>(\n      'post',\n      `${this.basePath}/STU3/Observation`,\n      {\n        body: body,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID A parameter\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public observationReadVitalsDSTU2(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ObservationDSTU2>;\n  public observationReadVitalsDSTU2(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ObservationDSTU2>>;\n  public observationReadVitalsDSTU2(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ObservationDSTU2>>;\n  public observationReadVitalsDSTU2(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling observationReadVitalsDSTU2.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ObservationDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Observation/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The observation FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public observationReadVitalsR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ObservationR4>;\n  public observationReadVitalsR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ObservationR4>>;\n  public observationReadVitalsR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ObservationR4>>;\n  public observationReadVitalsR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling observationReadVitalsR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ObservationR4>(\n      'get',\n      `${this.basePath}/R4/Observation/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The observation FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public observationReadVitalsSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ObservationSTU3>;\n  public observationReadVitalsSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ObservationSTU3>>;\n  public observationReadVitalsSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ObservationSTU3>>;\n  public observationReadVitalsSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling observationReadVitalsSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ObservationSTU3>(\n      'get',\n      `${this.basePath}/STU3/Observation/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param id List of Observation Read Ids.\n   * @param category Search for Observation resources for a valid category (vital-signs, social-history, laboratory). Both patient and category (or code) are required for a valid patient-based search.\n   * @param code LOINC code for the type of observation - translated to a flowsheet id by EXM mapping.\n   * @param date Date or date range for which the observation applies.\n   * @param subject FHIR Patient ID\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public observationSearchVitalsDSTU2(\n    id: string,\n    category: string,\n    code?: string,\n    date?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleObservationDSTU2>;\n  public observationSearchVitalsDSTU2(\n    id: string,\n    category: string,\n    code?: string,\n    date?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleObservationDSTU2>>;\n  public observationSearchVitalsDSTU2(\n    id: string,\n    category: string,\n    code?: string,\n    date?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleObservationDSTU2>>;\n  public observationSearchVitalsDSTU2(\n    id: string,\n    category: string,\n    code?: string,\n    date?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (id === null || id === undefined) {\n      throw new Error(\n        'Required parameter id was null or undefined when calling observationSearchVitalsDSTU2.'\n      );\n    }\n\n    if (category === null || category === undefined) {\n      throw new Error(\n        'Required parameter category was null or undefined when calling observationSearchVitalsDSTU2.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (id !== undefined && id !== null) {\n      queryParameters = queryParameters.set('_id', <any>id);\n    }\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (code !== undefined && code !== null) {\n      queryParameters = queryParameters.set('code', <any>code);\n    }\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleObservationDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Observation`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param category Use \\&quot;vital-signs\\&quot; to search for vitals observations. Either this element or code must be provided, but not both.\n   * @param code &lt;p&gt;LOINC code, CADSR code, flowsheet ID, or encoded flowsheet ID. Either this element or category must be provided, but not both.&lt;/p&gt; &lt;p&gt;The code element value varies depending upon what is passed (for example, a flowsheet ID vs. a LOINC code). If using a flowsheet ID, the system value is different between Epic organizations, and it is also different between production and non-production environments for the same organization.&lt;/p&gt;\n   * @param date &lt;p&gt;The date range for when the observation was taken. &lt;p&gt;For growth chart data (Epic version August 2021 and later), only the most recent observation within the timeframe is returned.\n   * @param patient Reference to a patient resource the observation is about. Either this element or subject must be provided. If both are provided, they must match.\n   * @param subject Reference to a patient resource the observation is about. Either this element or patient must be provided. If both are provided, they must match.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public observationSearchVitalsR4(\n    category: string,\n    code: string,\n    date: string,\n    patient: string,\n    subject: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleObservationR4>;\n  public observationSearchVitalsR4(\n    category: string,\n    code: string,\n    date: string,\n    patient: string,\n    subject: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleObservationR4>>;\n  public observationSearchVitalsR4(\n    category: string,\n    code: string,\n    date: string,\n    patient: string,\n    subject: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleObservationR4>>;\n  public observationSearchVitalsR4(\n    category: string,\n    code: string,\n    date: string,\n    patient: string,\n    subject: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (category === null || category === undefined) {\n      throw new Error(\n        'Required parameter category was null or undefined when calling observationSearchVitalsR4.'\n      );\n    }\n\n    if (code === null || code === undefined) {\n      throw new Error(\n        'Required parameter code was null or undefined when calling observationSearchVitalsR4.'\n      );\n    }\n\n    if (date === null || date === undefined) {\n      throw new Error(\n        'Required parameter date was null or undefined when calling observationSearchVitalsR4.'\n      );\n    }\n\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling observationSearchVitalsR4.'\n      );\n    }\n\n    if (subject === null || subject === undefined) {\n      throw new Error(\n        'Required parameter subject was null or undefined when calling observationSearchVitalsR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (code !== undefined && code !== null) {\n      queryParameters = queryParameters.set('code', <any>code);\n    }\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleObservationR4>(\n      'get',\n      `${this.basePath}/R4/Observation`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param category Use \\&quot;vital-signs\\&quot; to search for vitals observations. Either this element or code must be provided, but not both.\n   * @param code &lt;p&gt;LOINC code, CADSR code, or encoded flowsheet ID. Either this element or category must be provided, but not both.&lt;/p&gt; &lt;p&gt;The code element value varies depending upon what is passed (for example, a flowsheet ID vs. a LOINC code). If using a flowsheet ID, the system value is different between Epic organizations, and it is also different between production and non-production environments for the same organization.&lt;/p&gt;\n   * @param patient Reference to a patient resource the observation is about. Either this element or subject must be provided. If both are provided, they must match.\n   * @param subject Reference to a patient resource the observation is about. Either this element or patient must be provided. If both are provided, they must match.\n   * @param date The date range for when the observation was taken.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public observationSearchVitalsSTU3(\n    category: string,\n    code: string,\n    patient: string,\n    subject: string,\n    date?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleObservationSTU3>;\n  public observationSearchVitalsSTU3(\n    category: string,\n    code: string,\n    patient: string,\n    subject: string,\n    date?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleObservationSTU3>>;\n  public observationSearchVitalsSTU3(\n    category: string,\n    code: string,\n    patient: string,\n    subject: string,\n    date?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleObservationSTU3>>;\n  public observationSearchVitalsSTU3(\n    category: string,\n    code: string,\n    patient: string,\n    subject: string,\n    date?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (category === null || category === undefined) {\n      throw new Error(\n        'Required parameter category was null or undefined when calling observationSearchVitalsSTU3.'\n      );\n    }\n\n    if (code === null || code === undefined) {\n      throw new Error(\n        'Required parameter code was null or undefined when calling observationSearchVitalsSTU3.'\n      );\n    }\n\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling observationSearchVitalsSTU3.'\n      );\n    }\n\n    if (subject === null || subject === undefined) {\n      throw new Error(\n        'Required parameter subject was null or undefined when calling observationSearchVitalsSTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (code !== undefined && code !== null) {\n      queryParameters = queryParameters.set('code', <any>code);\n    }\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleObservationSTU3>(\n      'get',\n      `${this.basePath}/STU3/Observation`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param body payload\n   * @param ID The observation FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public observationUpdateLDAWR4(\n    body: ObservationR4,\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ObservationR4>;\n  public observationUpdateLDAWR4(\n    body: ObservationR4,\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ObservationR4>>;\n  public observationUpdateLDAWR4(\n    body: ObservationR4,\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ObservationR4>>;\n  public observationUpdateLDAWR4(\n    body: ObservationR4,\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (body === null || body === undefined) {\n      throw new Error(\n        'Required parameter body was null or undefined when calling observationUpdateLDAWR4.'\n      );\n    }\n\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling observationUpdateLDAWR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = ['application/json'];\n    const httpContentTypeSelected: string | undefined =\n      this.configuration.selectHeaderContentType(consumes);\n    if (httpContentTypeSelected != undefined) {\n      headers = headers.set('Content-Type', httpContentTypeSelected);\n    }\n\n    return this.httpClient.request<ObservationR4>(\n      'put',\n      `${this.basePath}/R4/Observation/${encodeURIComponent(String(ID))}`,\n      {\n        body: body,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param body payload\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public observationUpdateLDAWSTU3(\n    body: ObservationSTU3,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ObservationSTU3>;\n  public observationUpdateLDAWSTU3(\n    body: ObservationSTU3,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ObservationSTU3>>;\n  public observationUpdateLDAWSTU3(\n    body: ObservationSTU3,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ObservationSTU3>>;\n  public observationUpdateLDAWSTU3(\n    body: ObservationSTU3,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (body === null || body === undefined) {\n      throw new Error(\n        'Required parameter body was null or undefined when calling observationUpdateLDAWSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = ['application/json'];\n    const httpContentTypeSelected: string | undefined =\n      this.configuration.selectHeaderContentType(consumes);\n    if (httpContentTypeSelected != undefined) {\n      headers = headers.set('Content-Type', httpContentTypeSelected);\n    }\n\n    return this.httpClient.request<ObservationSTU3>(\n      'put',\n      `${this.basePath}/STU3/Observation`,\n      {\n        body: body,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param code &lt;p&gt;Use the following SNOMED code to search for living situation:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;365508006: Living situation&lt;/li&gt;&lt;/ul&gt;\n   * @param category Use \\&quot;social-history\\&quot; to search for living situation observations.\n   * @param max The maximum amount of responses for each subtype of the category.\n   * @param patient Reference to a patient resource.\n   * @param subject The reference to a patient resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public observationlastnSocialHistorySTU3(\n    code: string,\n    category?: string,\n    max?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleObservationSTU3>;\n  public observationlastnSocialHistorySTU3(\n    code: string,\n    category?: string,\n    max?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleObservationSTU3>>;\n  public observationlastnSocialHistorySTU3(\n    code: string,\n    category?: string,\n    max?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleObservationSTU3>>;\n  public observationlastnSocialHistorySTU3(\n    code: string,\n    category?: string,\n    max?: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (code === null || code === undefined) {\n      throw new Error(\n        'Required parameter code was null or undefined when calling observationlastnSocialHistorySTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (code !== undefined && code !== null) {\n      queryParameters = queryParameters.set('code', <any>code);\n    }\n    if (max !== undefined && max !== null) {\n      queryParameters = queryParameters.set('max', <any>max);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleObservationSTU3>(\n      'get',\n      `${this.basePath}/STU3/Observation/$lastn`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleOrganizationR4 } from '../model/bundleOrganizationR4';\nimport { OrganizationR4 } from '../model/organizationR4';\nimport { OrganizationSTU3 } from '../model/organizationSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class OrganizationService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID &lt;p&gt;The Organization FHIR ID.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public organizationReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<OrganizationR4>;\n  public organizationReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<OrganizationR4>>;\n  public organizationReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<OrganizationR4>>;\n  public organizationReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling organizationReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<OrganizationR4>(\n      'get',\n      `${this.basePath}/R4/Organization/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID &lt;p&gt;The Organization FHIR ID.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public organizationReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<OrganizationSTU3>;\n  public organizationReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<OrganizationSTU3>>;\n  public organizationReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<OrganizationSTU3>>;\n  public organizationReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling organizationReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<OrganizationSTU3>(\n      'get',\n      `${this.basePath}/STU3/Organization/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public organizationSearchR4(\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleOrganizationR4>;\n  public organizationSearchR4(\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleOrganizationR4>>;\n  public organizationSearchR4(\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleOrganizationR4>>;\n  public organizationSearchR4(\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleOrganizationR4>(\n      'get',\n      `${this.basePath}/R4/Organization`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundlePatientDSTU2 } from '../model/bundlePatientDSTU2';\nimport { BundlePatientR4 } from '../model/bundlePatientR4';\nimport { BundlePatientSTU3 } from '../model/bundlePatientSTU3';\nimport { PatientDSTU2 } from '../model/patientDSTU2';\nimport { PatientR4 } from '../model/patientR4';\nimport { PatientSTU3 } from '../model/patientSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class PatientService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param body payload\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public patientCreateR4(\n    body: PatientR4,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<PatientR4>;\n  public patientCreateR4(\n    body: PatientR4,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<PatientR4>>;\n  public patientCreateR4(\n    body: PatientR4,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<PatientR4>>;\n  public patientCreateR4(\n    body: PatientR4,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (body === null || body === undefined) {\n      throw new Error(\n        'Required parameter body was null or undefined when calling patientCreateR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = ['application/json'];\n    const httpContentTypeSelected: string | undefined =\n      this.configuration.selectHeaderContentType(consumes);\n    if (httpContentTypeSelected != undefined) {\n      headers = headers.set('Content-Type', httpContentTypeSelected);\n    }\n\n    return this.httpClient.request<PatientR4>(\n      'post',\n      `${this.basePath}/R4/Patient`,\n      {\n        body: body,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param body payload\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public patientCreateSTU3(\n    body: PatientSTU3,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<PatientSTU3>;\n  public patientCreateSTU3(\n    body: PatientSTU3,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<PatientSTU3>>;\n  public patientCreateSTU3(\n    body: PatientSTU3,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<PatientSTU3>>;\n  public patientCreateSTU3(\n    body: PatientSTU3,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (body === null || body === undefined) {\n      throw new Error(\n        'Required parameter body was null or undefined when calling patientCreateSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = ['application/json'];\n    const httpContentTypeSelected: string | undefined =\n      this.configuration.selectHeaderContentType(consumes);\n    if (httpContentTypeSelected != undefined) {\n      headers = headers.set('Content-Type', httpContentTypeSelected);\n    }\n\n    return this.httpClient.request<PatientSTU3>(\n      'post',\n      `${this.basePath}/STU3/Patient`,\n      {\n        body: body,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The Patient&#x27;s FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public patientReadDSTU2(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<PatientDSTU2>;\n  public patientReadDSTU2(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<PatientDSTU2>>;\n  public patientReadDSTU2(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<PatientDSTU2>>;\n  public patientReadDSTU2(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling patientReadDSTU2.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<PatientDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Patient/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The patient FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public patientReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<PatientR4>;\n  public patientReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<PatientR4>>;\n  public patientReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<PatientR4>>;\n  public patientReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling patientReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<PatientR4>(\n      'get',\n      `${this.basePath}/R4/Patient/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The patient FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public patientReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<PatientSTU3>;\n  public patientReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<PatientSTU3>>;\n  public patientReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<PatientSTU3>>;\n  public patientReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling patientReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<PatientSTU3>(\n      'get',\n      `${this.basePath}/STU3/Patient/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param id The Patient&#x27;s FHIR ID.\n   * @param address Addresses for the patient.\n   * @param birthdate The patient&#x27;s date of birth in the format YYYY-MM-DD.\n   * @param family The patient&#x27;s family (last) name.\n   * @param gender The patient&#x27;s legal sex.\n   * @param given The patient&#x27;s given name. May include first and middle names.\n   * @param identifier Identifiers and assigning authorities associated with a patient. These are of the format &amp;lt;OID&amp;gt;|&amp;lt;value&amp;gt;.\n   * @param telecom Telephone numbers and email addresses for the patient, along with their use (i.e. home, work, etc.)\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public patientSearchDSTU2(\n    id?: string,\n    address?: string,\n    birthdate?: string,\n    family?: string,\n    gender?: string,\n    given?: string,\n    identifier?: string,\n    telecom?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundlePatientDSTU2>;\n  public patientSearchDSTU2(\n    id?: string,\n    address?: string,\n    birthdate?: string,\n    family?: string,\n    gender?: string,\n    given?: string,\n    identifier?: string,\n    telecom?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundlePatientDSTU2>>;\n  public patientSearchDSTU2(\n    id?: string,\n    address?: string,\n    birthdate?: string,\n    family?: string,\n    gender?: string,\n    given?: string,\n    identifier?: string,\n    telecom?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundlePatientDSTU2>>;\n  public patientSearchDSTU2(\n    id?: string,\n    address?: string,\n    birthdate?: string,\n    family?: string,\n    gender?: string,\n    given?: string,\n    identifier?: string,\n    telecom?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (id !== undefined && id !== null) {\n      queryParameters = queryParameters.set('_id', <any>id);\n    }\n    if (address !== undefined && address !== null) {\n      queryParameters = queryParameters.set('address', <any>address);\n    }\n    if (birthdate !== undefined && birthdate !== null) {\n      queryParameters = queryParameters.set('birthdate', <any>birthdate);\n    }\n    if (family !== undefined && family !== null) {\n      queryParameters = queryParameters.set('family', <any>family);\n    }\n    if (gender !== undefined && gender !== null) {\n      queryParameters = queryParameters.set('gender', <any>gender);\n    }\n    if (given !== undefined && given !== null) {\n      queryParameters = queryParameters.set('given', <any>given);\n    }\n    if (identifier !== undefined && identifier !== null) {\n      queryParameters = queryParameters.set('identifier', <any>identifier);\n    }\n    if (telecom !== undefined && telecom !== null) {\n      queryParameters = queryParameters.set('telecom', <any>telecom);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundlePatientDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Patient`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param address The patient&#x27;s street address.\n   * @param addressCity The city for patient&#x27;s home address.\n   * @param addressPostalcode The postal code for patient&#x27;s home address.\n   * @param addressState The state for the patient&#x27;s home address.\n   * @param birthdate The patient&#x27;s date of birth in the format YYYY-MM-DD.\n   * @param family The patient&#x27;s family (last) name.\n   * @param gender The patient&#x27;s legal sex. Starting in the August 2021 version of Epic, the legal-sex parameter is preferred.\n   * @param given The patient&#x27;s given name. May include first and middle names.\n   * @param identifier &lt;p&gt;The patient&#x27;s identifier.&lt;/p&gt;  &lt;p&gt;Starting in November 2018, this web service supports using ID and ID type combinations, such as Patient?identifier&#x3D;MRN|202497.&lt;/p&gt;\n   * @param legalSex The patient’s legal sex. Takes precedence over the gender search parameter. Available starting in the August 2021 version of Epic.\n   * @param name Any part of the patient&#x27;s name. When discrete name parameters are used, such as family or given, this parameter is ignored.\n   * @param ownName The patient&#x27;s own last name. Usually used in non-US names.\n   * @param ownPrefix The patient&#x27;s own prefix. Usually used in non-US names.\n   * @param partnerName The patient&#x27;s spouse&#x27;s last name. Usually used in non-US names.\n   * @param partnerPrefix The patient&#x27;s spouse&#x27;s prefix. Usually used in non-US names.\n   * @param telecom The patient&#x27;s phone number or email.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public patientSearchR4(\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    birthdate?: string,\n    family?: string,\n    gender?: string,\n    given?: string,\n    identifier?: string,\n    legalSex?: string,\n    name?: string,\n    ownName?: string,\n    ownPrefix?: string,\n    partnerName?: string,\n    partnerPrefix?: string,\n    telecom?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundlePatientR4>;\n  public patientSearchR4(\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    birthdate?: string,\n    family?: string,\n    gender?: string,\n    given?: string,\n    identifier?: string,\n    legalSex?: string,\n    name?: string,\n    ownName?: string,\n    ownPrefix?: string,\n    partnerName?: string,\n    partnerPrefix?: string,\n    telecom?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundlePatientR4>>;\n  public patientSearchR4(\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    birthdate?: string,\n    family?: string,\n    gender?: string,\n    given?: string,\n    identifier?: string,\n    legalSex?: string,\n    name?: string,\n    ownName?: string,\n    ownPrefix?: string,\n    partnerName?: string,\n    partnerPrefix?: string,\n    telecom?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundlePatientR4>>;\n  public patientSearchR4(\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    birthdate?: string,\n    family?: string,\n    gender?: string,\n    given?: string,\n    identifier?: string,\n    legalSex?: string,\n    name?: string,\n    ownName?: string,\n    ownPrefix?: string,\n    partnerName?: string,\n    partnerPrefix?: string,\n    telecom?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (address !== undefined && address !== null) {\n      queryParameters = queryParameters.set('address', <any>address);\n    }\n    if (addressCity !== undefined && addressCity !== null) {\n      queryParameters = queryParameters.set('address-city', <any>addressCity);\n    }\n    if (addressPostalcode !== undefined && addressPostalcode !== null) {\n      queryParameters = queryParameters.set(\n        'address-postalcode',\n        <any>addressPostalcode\n      );\n    }\n    if (addressState !== undefined && addressState !== null) {\n      queryParameters = queryParameters.set('address-state', <any>addressState);\n    }\n    if (birthdate !== undefined && birthdate !== null) {\n      queryParameters = queryParameters.set('birthdate', <any>birthdate);\n    }\n    if (family !== undefined && family !== null) {\n      queryParameters = queryParameters.set('family', <any>family);\n    }\n    if (gender !== undefined && gender !== null) {\n      queryParameters = queryParameters.set('gender', <any>gender);\n    }\n    if (given !== undefined && given !== null) {\n      queryParameters = queryParameters.set('given', <any>given);\n    }\n    if (identifier !== undefined && identifier !== null) {\n      queryParameters = queryParameters.set('identifier', <any>identifier);\n    }\n    if (legalSex !== undefined && legalSex !== null) {\n      queryParameters = queryParameters.set('legal-sex', <any>legalSex);\n    }\n    if (name !== undefined && name !== null) {\n      queryParameters = queryParameters.set('name', <any>name);\n    }\n    if (ownName !== undefined && ownName !== null) {\n      queryParameters = queryParameters.set('own-name', <any>ownName);\n    }\n    if (ownPrefix !== undefined && ownPrefix !== null) {\n      queryParameters = queryParameters.set('own-prefix', <any>ownPrefix);\n    }\n    if (partnerName !== undefined && partnerName !== null) {\n      queryParameters = queryParameters.set('partner-name', <any>partnerName);\n    }\n    if (partnerPrefix !== undefined && partnerPrefix !== null) {\n      queryParameters = queryParameters.set(\n        'partner-prefix',\n        <any>partnerPrefix\n      );\n    }\n    if (telecom !== undefined && telecom !== null) {\n      queryParameters = queryParameters.set('telecom', <any>telecom);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundlePatientR4>(\n      'get',\n      `${this.basePath}/R4/Patient`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param address The patient&#x27;s street address.\n   * @param addressCity The city for patient&#x27;s home address.\n   * @param addressPostalcode The postal code for patient&#x27;s home address.\n   * @param addressState The state for the patient&#x27;s home address.\n   * @param birthdate The patient&#x27;s date of birth in the format YYYY-MM-DD.\n   * @param family The patient&#x27;s family (last) name.\n   * @param gender The patient&#x27;s legal sex. Starting in the August 2021 version of Epic, the legal-sex parameter is preferred.\n   * @param given The patient&#x27;s given name. May include first and middle names.\n   * @param identifier &lt;p&gt;The patient&#x27;s identifier.&lt;/p&gt;  &lt;p&gt;This web service supports using ID and ID type combinations, such as Patient?identifier&#x3D;MRN|202497.&lt;/p&gt;\n   * @param legalSex The patient’s legal sex. Takes precedence over the gender search parameter.   Available starting in the August 2021 version of Epic.\n   * @param ownName The patient&#x27;s own last name. Usually used in non-US names.\n   * @param ownPrefix The patient&#x27;s own prefix. Usually used in non-US names.\n   * @param partnerName The patient&#x27;s spouse&#x27;s last name. Usually used in non-US names.\n   * @param partnerPrefix The patient&#x27;s spouse&#x27;s prefix. Usually used in non-US names.\n   * @param telecom The patient&#x27;s phone number or email.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public patientSearchSTU3(\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    birthdate?: string,\n    family?: string,\n    gender?: string,\n    given?: string,\n    identifier?: string,\n    legalSex?: string,\n    ownName?: string,\n    ownPrefix?: string,\n    partnerName?: string,\n    partnerPrefix?: string,\n    telecom?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundlePatientSTU3>;\n  public patientSearchSTU3(\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    birthdate?: string,\n    family?: string,\n    gender?: string,\n    given?: string,\n    identifier?: string,\n    legalSex?: string,\n    ownName?: string,\n    ownPrefix?: string,\n    partnerName?: string,\n    partnerPrefix?: string,\n    telecom?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundlePatientSTU3>>;\n  public patientSearchSTU3(\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    birthdate?: string,\n    family?: string,\n    gender?: string,\n    given?: string,\n    identifier?: string,\n    legalSex?: string,\n    ownName?: string,\n    ownPrefix?: string,\n    partnerName?: string,\n    partnerPrefix?: string,\n    telecom?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundlePatientSTU3>>;\n  public patientSearchSTU3(\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    birthdate?: string,\n    family?: string,\n    gender?: string,\n    given?: string,\n    identifier?: string,\n    legalSex?: string,\n    ownName?: string,\n    ownPrefix?: string,\n    partnerName?: string,\n    partnerPrefix?: string,\n    telecom?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (address !== undefined && address !== null) {\n      queryParameters = queryParameters.set('address', <any>address);\n    }\n    if (addressCity !== undefined && addressCity !== null) {\n      queryParameters = queryParameters.set('address-city', <any>addressCity);\n    }\n    if (addressPostalcode !== undefined && addressPostalcode !== null) {\n      queryParameters = queryParameters.set(\n        'address-postalcode',\n        <any>addressPostalcode\n      );\n    }\n    if (addressState !== undefined && addressState !== null) {\n      queryParameters = queryParameters.set('address-state', <any>addressState);\n    }\n    if (birthdate !== undefined && birthdate !== null) {\n      queryParameters = queryParameters.set('birthdate', <any>birthdate);\n    }\n    if (family !== undefined && family !== null) {\n      queryParameters = queryParameters.set('family', <any>family);\n    }\n    if (gender !== undefined && gender !== null) {\n      queryParameters = queryParameters.set('gender', <any>gender);\n    }\n    if (given !== undefined && given !== null) {\n      queryParameters = queryParameters.set('given', <any>given);\n    }\n    if (identifier !== undefined && identifier !== null) {\n      queryParameters = queryParameters.set('identifier', <any>identifier);\n    }\n    if (legalSex !== undefined && legalSex !== null) {\n      queryParameters = queryParameters.set('legal-sex', <any>legalSex);\n    }\n    if (ownName !== undefined && ownName !== null) {\n      queryParameters = queryParameters.set('own-name', <any>ownName);\n    }\n    if (ownPrefix !== undefined && ownPrefix !== null) {\n      queryParameters = queryParameters.set('own-prefix', <any>ownPrefix);\n    }\n    if (partnerName !== undefined && partnerName !== null) {\n      queryParameters = queryParameters.set('partner-name', <any>partnerName);\n    }\n    if (partnerPrefix !== undefined && partnerPrefix !== null) {\n      queryParameters = queryParameters.set(\n        'partner-prefix',\n        <any>partnerPrefix\n      );\n    }\n    if (telecom !== undefined && telecom !== null) {\n      queryParameters = queryParameters.set('telecom', <any>telecom);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundlePatientSTU3>(\n      'get',\n      `${this.basePath}/STU3/Patient`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundlePractitionerDSTU2 } from '../model/bundlePractitionerDSTU2';\nimport { BundlePractitionerR4 } from '../model/bundlePractitionerR4';\nimport { BundlePractitionerSTU3 } from '../model/bundlePractitionerSTU3';\nimport { PractitionerDSTU2 } from '../model/practitionerDSTU2';\nimport { PractitionerR4 } from '../model/practitionerR4';\nimport { PractitionerSTU3 } from '../model/practitionerSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class PractitionerService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The FHIR ID of a practitioner.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public practitionerReadDSTU2(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<PractitionerDSTU2>;\n  public practitionerReadDSTU2(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<PractitionerDSTU2>>;\n  public practitionerReadDSTU2(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<PractitionerDSTU2>>;\n  public practitionerReadDSTU2(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling practitionerReadDSTU2.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<PractitionerDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Practitioner/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The ID of a practitioner.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public practitionerReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<PractitionerR4>;\n  public practitionerReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<PractitionerR4>>;\n  public practitionerReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<PractitionerR4>>;\n  public practitionerReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling practitionerReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<PractitionerR4>(\n      'get',\n      `${this.basePath}/R4/Practitioner/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The ID of a practitioner.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public practitionerReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<PractitionerSTU3>;\n  public practitionerReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<PractitionerSTU3>>;\n  public practitionerReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<PractitionerSTU3>>;\n  public practitionerReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling practitionerReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<PractitionerSTU3>(\n      'get',\n      `${this.basePath}/STU3/Practitioner/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param address Search for Practitioner resources by any part of an address, such as street or city, where a practitioner can be found.\n   * @param addressCity Search for Practitioner resources using the city portion of the address at which the practitioner can be found. This parameter must be used with the address_postalcode parameter.\n   * @param addressPostalcode Search for Practitioner resources using the postal code portion of the address at which the practitioner can be found.\n   * @param addressState Search for Practitioner resources using the state portion of the address at which the practitioner can be found.\n   * @param family &lt;p&gt;Search for Practitioner resources by family (last) name. Family name searching supports both exact and \\&quot;sounds like\\&quot; matches.&lt;/p&gt;  &lt;p&gt;Either Family or Specialty is required for a search to succeed.&lt;/p&gt;\n   * @param gender Search for Practitioner resources using the following gender codes: \\&quot;female\\&quot;, \\&quot;male\\&quot;, or \\&quot;unknown\\&quot;.\n   * @param given Search for Practitioner resources by given (first) name. Given name searching supports both exact and \\&quot;sounds like\\&quot; matches.\n   * @param specialty &lt;p&gt;Search for Practitioner resources by specialty in the format [code system]|[code].&lt;/p&gt;  &lt;p&gt;Either Family or Specialty is required for a search to succeed.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public practitionerSearchDSTU2(\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    family?: string,\n    gender?: string,\n    given?: string,\n    specialty?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundlePractitionerDSTU2>;\n  public practitionerSearchDSTU2(\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    family?: string,\n    gender?: string,\n    given?: string,\n    specialty?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundlePractitionerDSTU2>>;\n  public practitionerSearchDSTU2(\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    family?: string,\n    gender?: string,\n    given?: string,\n    specialty?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundlePractitionerDSTU2>>;\n  public practitionerSearchDSTU2(\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    family?: string,\n    gender?: string,\n    given?: string,\n    specialty?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (address !== undefined && address !== null) {\n      queryParameters = queryParameters.set('address', <any>address);\n    }\n    if (addressCity !== undefined && addressCity !== null) {\n      queryParameters = queryParameters.set('address_city', <any>addressCity);\n    }\n    if (addressPostalcode !== undefined && addressPostalcode !== null) {\n      queryParameters = queryParameters.set(\n        'address_postalcode',\n        <any>addressPostalcode\n      );\n    }\n    if (addressState !== undefined && addressState !== null) {\n      queryParameters = queryParameters.set('address_state', <any>addressState);\n    }\n    if (family !== undefined && family !== null) {\n      queryParameters = queryParameters.set('family', <any>family);\n    }\n    if (gender !== undefined && gender !== null) {\n      queryParameters = queryParameters.set('gender', <any>gender);\n    }\n    if (given !== undefined && given !== null) {\n      queryParameters = queryParameters.set('given', <any>given);\n    }\n    if (specialty !== undefined && specialty !== null) {\n      queryParameters = queryParameters.set('specialty', <any>specialty);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundlePractitionerDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Practitioner`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param family A portion of the family name. If name or identifier is provided, this is not required.\n   * @param identifier A practitioner&#x27;s identifier, such as NPI. If Family or Name is provided, this is not required. This web service supports using ID and ID type combinations, such as Practitioner?identifier&#x3D;External|802559.\n   * @param name Free text that can match either Family or Given (or both). If Family or Identifier is provided, this is not required.\n   * @param address The free-text address.\n   * @param addressCity The city specified in the address. City cannot be specified without state or ZIP code.\n   * @param addressPostalcode A ZIP code specified in the address.\n   * @param addressState A state specified in the address.\n   * @param given A portion of the given name. If Given is provided, Family must also be provided.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public practitionerSearchR4(\n    family: string,\n    identifier: string,\n    name: string,\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    given?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundlePractitionerR4>;\n  public practitionerSearchR4(\n    family: string,\n    identifier: string,\n    name: string,\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    given?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundlePractitionerR4>>;\n  public practitionerSearchR4(\n    family: string,\n    identifier: string,\n    name: string,\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    given?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundlePractitionerR4>>;\n  public practitionerSearchR4(\n    family: string,\n    identifier: string,\n    name: string,\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    given?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (family === null || family === undefined) {\n      throw new Error(\n        'Required parameter family was null or undefined when calling practitionerSearchR4.'\n      );\n    }\n\n    if (identifier === null || identifier === undefined) {\n      throw new Error(\n        'Required parameter identifier was null or undefined when calling practitionerSearchR4.'\n      );\n    }\n\n    if (name === null || name === undefined) {\n      throw new Error(\n        'Required parameter name was null or undefined when calling practitionerSearchR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (address !== undefined && address !== null) {\n      queryParameters = queryParameters.set('address', <any>address);\n    }\n    if (addressCity !== undefined && addressCity !== null) {\n      queryParameters = queryParameters.set('address-city', <any>addressCity);\n    }\n    if (addressPostalcode !== undefined && addressPostalcode !== null) {\n      queryParameters = queryParameters.set(\n        'address-postalcode',\n        <any>addressPostalcode\n      );\n    }\n    if (addressState !== undefined && addressState !== null) {\n      queryParameters = queryParameters.set('address-state', <any>addressState);\n    }\n    if (family !== undefined && family !== null) {\n      queryParameters = queryParameters.set('family', <any>family);\n    }\n    if (given !== undefined && given !== null) {\n      queryParameters = queryParameters.set('given', <any>given);\n    }\n    if (identifier !== undefined && identifier !== null) {\n      queryParameters = queryParameters.set('identifier', <any>identifier);\n    }\n    if (name !== undefined && name !== null) {\n      queryParameters = queryParameters.set('name', <any>name);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundlePractitionerR4>(\n      'get',\n      `${this.basePath}/R4/Practitioner`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param family A portion of the family name. If name or identifier is provided, this is not required.\n   * @param identifier &lt;p&gt;A practitioner&#x27;s identifier, such as NPI. If Family or Name is provided, this is not required.&lt;/p&gt;  &lt;p&gt;Starting in November 2018, this web service supports using ID and ID type combinations, such as Practitioner?identifier&#x3D;External|802559.&lt;/p&gt;\n   * @param name Free text that can match either Family or Given (or both). If Family or Identifier is provided, this is not required.\n   * @param address The free-text address.\n   * @param addressCity The city specified in the address. City cannot be specified without state or ZIP code.\n   * @param addressPostalcode A ZIP code specified in the address.\n   * @param addressState A state specified in the address.\n   * @param given A portion of the given name. If Given is provided, Family must also be provided.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public practitionerSearchSTU3(\n    family: string,\n    identifier: string,\n    name: string,\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    given?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundlePractitionerSTU3>;\n  public practitionerSearchSTU3(\n    family: string,\n    identifier: string,\n    name: string,\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    given?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundlePractitionerSTU3>>;\n  public practitionerSearchSTU3(\n    family: string,\n    identifier: string,\n    name: string,\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    given?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundlePractitionerSTU3>>;\n  public practitionerSearchSTU3(\n    family: string,\n    identifier: string,\n    name: string,\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    given?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (family === null || family === undefined) {\n      throw new Error(\n        'Required parameter family was null or undefined when calling practitionerSearchSTU3.'\n      );\n    }\n\n    if (identifier === null || identifier === undefined) {\n      throw new Error(\n        'Required parameter identifier was null or undefined when calling practitionerSearchSTU3.'\n      );\n    }\n\n    if (name === null || name === undefined) {\n      throw new Error(\n        'Required parameter name was null or undefined when calling practitionerSearchSTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (address !== undefined && address !== null) {\n      queryParameters = queryParameters.set('address', <any>address);\n    }\n    if (addressCity !== undefined && addressCity !== null) {\n      queryParameters = queryParameters.set('address-city', <any>addressCity);\n    }\n    if (addressPostalcode !== undefined && addressPostalcode !== null) {\n      queryParameters = queryParameters.set(\n        'address-postalcode',\n        <any>addressPostalcode\n      );\n    }\n    if (addressState !== undefined && addressState !== null) {\n      queryParameters = queryParameters.set('address-state', <any>addressState);\n    }\n    if (family !== undefined && family !== null) {\n      queryParameters = queryParameters.set('family', <any>family);\n    }\n    if (given !== undefined && given !== null) {\n      queryParameters = queryParameters.set('given', <any>given);\n    }\n    if (identifier !== undefined && identifier !== null) {\n      queryParameters = queryParameters.set('identifier', <any>identifier);\n    }\n    if (name !== undefined && name !== null) {\n      queryParameters = queryParameters.set('name', <any>name);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundlePractitionerSTU3>(\n      'get',\n      `${this.basePath}/STU3/Practitioner`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundlePractitionerRoleR4 } from '../model/bundlePractitionerRoleR4';\nimport { BundlePractitionerRoleSTU3 } from '../model/bundlePractitionerRoleSTU3';\nimport { PractitionerRoleR4 } from '../model/practitionerRoleR4';\nimport { PractitionerRoleSTU3 } from '../model/practitionerRoleSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class PractitionerRoleService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The read interaction enables the look up of a PractitionerRole resource by a constant server ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public practitionerRoleReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<PractitionerRoleR4>;\n  public practitionerRoleReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<PractitionerRoleR4>>;\n  public practitionerRoleReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<PractitionerRoleR4>>;\n  public practitionerRoleReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling practitionerRoleReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<PractitionerRoleR4>(\n      'get',\n      `${this.basePath}/R4/PractitionerRole/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The read interaction enables the look up of a PractitionerRole resource by a constant server ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public practitionerRoleReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<PractitionerRoleSTU3>;\n  public practitionerRoleReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<PractitionerRoleSTU3>>;\n  public practitionerRoleReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<PractitionerRoleSTU3>>;\n  public practitionerRoleReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling practitionerRoleReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<PractitionerRoleSTU3>(\n      'get',\n      `${this.basePath}/STU3/PractitionerRole/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param email Value in an email contact.\n   * @param identifier A practitioner&#x27;s identifier.\n   * @param location Reference to one of the locations at which this practitioner provides care.\n   * @param organization Reference to the organization that the practitioner represents or acts on behalf of.\n   * @param phone A value in a phone contact.\n   * @param practitioner A practitioner that can provide the defined services for the organization.\n   * @param role The role a practitioner can perform at an organization.\n   * @param specialty The practitioner&#x27;s specialty at an organization.\n   * @param telecom The value in any kind of contact.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public practitionerRoleSearchR4(\n    email?: string,\n    identifier?: string,\n    location?: string,\n    organization?: string,\n    phone?: string,\n    practitioner?: string,\n    role?: string,\n    specialty?: string,\n    telecom?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundlePractitionerRoleR4>;\n  public practitionerRoleSearchR4(\n    email?: string,\n    identifier?: string,\n    location?: string,\n    organization?: string,\n    phone?: string,\n    practitioner?: string,\n    role?: string,\n    specialty?: string,\n    telecom?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundlePractitionerRoleR4>>;\n  public practitionerRoleSearchR4(\n    email?: string,\n    identifier?: string,\n    location?: string,\n    organization?: string,\n    phone?: string,\n    practitioner?: string,\n    role?: string,\n    specialty?: string,\n    telecom?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundlePractitionerRoleR4>>;\n  public practitionerRoleSearchR4(\n    email?: string,\n    identifier?: string,\n    location?: string,\n    organization?: string,\n    phone?: string,\n    practitioner?: string,\n    role?: string,\n    specialty?: string,\n    telecom?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (email !== undefined && email !== null) {\n      queryParameters = queryParameters.set('email', <any>email);\n    }\n    if (identifier !== undefined && identifier !== null) {\n      queryParameters = queryParameters.set('identifier', <any>identifier);\n    }\n    if (location !== undefined && location !== null) {\n      queryParameters = queryParameters.set('location', <any>location);\n    }\n    if (organization !== undefined && organization !== null) {\n      queryParameters = queryParameters.set('organization', <any>organization);\n    }\n    if (phone !== undefined && phone !== null) {\n      queryParameters = queryParameters.set('phone', <any>phone);\n    }\n    if (practitioner !== undefined && practitioner !== null) {\n      queryParameters = queryParameters.set('practitioner', <any>practitioner);\n    }\n    if (role !== undefined && role !== null) {\n      queryParameters = queryParameters.set('role', <any>role);\n    }\n    if (specialty !== undefined && specialty !== null) {\n      queryParameters = queryParameters.set('specialty', <any>specialty);\n    }\n    if (telecom !== undefined && telecom !== null) {\n      queryParameters = queryParameters.set('telecom', <any>telecom);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundlePractitionerRoleR4>(\n      'get',\n      `${this.basePath}/R4/PractitionerRole`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param email Value in an email contact.\n   * @param identifier A practitioner&#x27;s identifier. A successful identifier search comprises of a token that is a URN:OID: + the code system, and a code in the format identifier&#x3D;code system|code.\n   * @param location One of the locations at which this practitioner provides care.\n   * @param organization The organization that the practitioner represents or acts on behalf of.\n   * @param phone A value in a phone contact.\n   * @param practitioner A practitioner that can provide the defined services for the organization.\n   * @param role The role a practitioner can perform at an organization.\n   * @param specialty The practitioner&#x27;s specialty at an organization.\n   * @param telecom The value in any kind of contact.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public practitionerRoleSearchSTU3(\n    email?: string,\n    identifier?: string,\n    location?: string,\n    organization?: string,\n    phone?: string,\n    practitioner?: string,\n    role?: string,\n    specialty?: string,\n    telecom?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundlePractitionerRoleSTU3>;\n  public practitionerRoleSearchSTU3(\n    email?: string,\n    identifier?: string,\n    location?: string,\n    organization?: string,\n    phone?: string,\n    practitioner?: string,\n    role?: string,\n    specialty?: string,\n    telecom?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundlePractitionerRoleSTU3>>;\n  public practitionerRoleSearchSTU3(\n    email?: string,\n    identifier?: string,\n    location?: string,\n    organization?: string,\n    phone?: string,\n    practitioner?: string,\n    role?: string,\n    specialty?: string,\n    telecom?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundlePractitionerRoleSTU3>>;\n  public practitionerRoleSearchSTU3(\n    email?: string,\n    identifier?: string,\n    location?: string,\n    organization?: string,\n    phone?: string,\n    practitioner?: string,\n    role?: string,\n    specialty?: string,\n    telecom?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (email !== undefined && email !== null) {\n      queryParameters = queryParameters.set('email', <any>email);\n    }\n    if (identifier !== undefined && identifier !== null) {\n      queryParameters = queryParameters.set('identifier', <any>identifier);\n    }\n    if (location !== undefined && location !== null) {\n      queryParameters = queryParameters.set('location', <any>location);\n    }\n    if (organization !== undefined && organization !== null) {\n      queryParameters = queryParameters.set('organization', <any>organization);\n    }\n    if (phone !== undefined && phone !== null) {\n      queryParameters = queryParameters.set('phone', <any>phone);\n    }\n    if (practitioner !== undefined && practitioner !== null) {\n      queryParameters = queryParameters.set('practitioner', <any>practitioner);\n    }\n    if (role !== undefined && role !== null) {\n      queryParameters = queryParameters.set('role', <any>role);\n    }\n    if (specialty !== undefined && specialty !== null) {\n      queryParameters = queryParameters.set('specialty', <any>specialty);\n    }\n    if (telecom !== undefined && telecom !== null) {\n      queryParameters = queryParameters.set('telecom', <any>telecom);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundlePractitionerRoleSTU3>(\n      'get',\n      `${this.basePath}/STU3/PractitionerRole`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleProcedureDSTU2 } from '../model/bundleProcedureDSTU2';\nimport { BundleProcedureR4 } from '../model/bundleProcedureR4';\nimport { BundleProcedureSTU3 } from '../model/bundleProcedureSTU3';\nimport { ProcedureDSTU2 } from '../model/procedureDSTU2';\nimport { ProcedureR4 } from '../model/procedureR4';\nimport { ProcedureSTU3 } from '../model/procedureSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ProcedureService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The Procedure FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public procedureReadOrdersDSTU2(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ProcedureDSTU2>;\n  public procedureReadOrdersDSTU2(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ProcedureDSTU2>>;\n  public procedureReadOrdersDSTU2(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ProcedureDSTU2>>;\n  public procedureReadOrdersDSTU2(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling procedureReadOrdersDSTU2.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ProcedureDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Procedure/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The Procedure FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public procedureReadOrdersSurgeriesSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ProcedureSTU3>;\n  public procedureReadOrdersSurgeriesSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ProcedureSTU3>>;\n  public procedureReadOrdersSurgeriesSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ProcedureSTU3>>;\n  public procedureReadOrdersSurgeriesSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling procedureReadOrdersSurgeriesSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ProcedureSTU3>(\n      'get',\n      `${this.basePath}/STU3/Procedure/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The Procedure FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public procedureReadSurgicalHistoryR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ProcedureR4>;\n  public procedureReadSurgicalHistoryR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ProcedureR4>>;\n  public procedureReadSurgicalHistoryR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ProcedureR4>>;\n  public procedureReadSurgicalHistoryR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling procedureReadSurgicalHistoryR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ProcedureR4>(\n      'get',\n      `${this.basePath}/R4/Procedure/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param date The date or date range the Procedure was performed.\n   * @param patient The Patient FHIR resource ID.\n   * @param subject Subject of the procedure.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public procedureSearchOrdersDSTU2(\n    date: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleProcedureDSTU2>;\n  public procedureSearchOrdersDSTU2(\n    date: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleProcedureDSTU2>>;\n  public procedureSearchOrdersDSTU2(\n    date: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleProcedureDSTU2>>;\n  public procedureSearchOrdersDSTU2(\n    date: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (date === null || date === undefined) {\n      throw new Error(\n        'Required parameter date was null or undefined when calling procedureSearchOrdersDSTU2.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleProcedureDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Procedure`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param category A code that classifies the procedure. The following SNOMED codes are acceptable values: 387713003 (Surgical procedure), 103693007 (Diagnostic procedure)\n   * @param date Date or period that the procedure was performed, using the FHIR date parameter format.\n   * @param patient The Patient FHIR resource ID.\n   * @param subject Subject of the procedure.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public procedureSearchOrdersSurgeriesSTU3(\n    category?: string,\n    date?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleProcedureSTU3>;\n  public procedureSearchOrdersSurgeriesSTU3(\n    category?: string,\n    date?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleProcedureSTU3>>;\n  public procedureSearchOrdersSurgeriesSTU3(\n    category?: string,\n    date?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleProcedureSTU3>>;\n  public procedureSearchOrdersSurgeriesSTU3(\n    category?: string,\n    date?: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleProcedureSTU3>(\n      'get',\n      `${this.basePath}/STU3/Procedure`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param category A code that classifies the procedure. This will always be SNOMED code 387713003 (Surgical procedure) for the Procedure (Surgical history) API.\n   * @param patient The Patient FHIR resource ID.\n   * @param subject Subject of the Procedure.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public procedureSearchSurgicalHistoryR4(\n    category?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleProcedureR4>;\n  public procedureSearchSurgicalHistoryR4(\n    category?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleProcedureR4>>;\n  public procedureSearchSurgicalHistoryR4(\n    category?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleProcedureR4>>;\n  public procedureSearchSurgicalHistoryR4(\n    category?: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleProcedureR4>(\n      'get',\n      `${this.basePath}/R4/Procedure`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleProcedureRequestSTU3 } from '../model/bundleProcedureRequestSTU3';\nimport { ProcedureRequestSTU3 } from '../model/procedureRequestSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ProcedureRequestService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR ProcedureRequest ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public procedureRequestReadOrdersSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ProcedureRequestSTU3>;\n  public procedureRequestReadOrdersSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ProcedureRequestSTU3>>;\n  public procedureRequestReadOrdersSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ProcedureRequestSTU3>>;\n  public procedureRequestReadOrdersSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling procedureRequestReadOrdersSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ProcedureRequestSTU3>(\n      'get',\n      `${this.basePath}/STU3/ProcedureRequest/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param requester Reference to a practitioner resource who is the authorizing provider for the procedure request. Default is all.\n   * @param status The status code to filter the search. The full list of potential values can be found &lt;a href&#x3D;\\&quot;http://hl7.org/fhir/stu3/valueset-request-status.html\\&quot;&gt;here&lt;/a&gt;. The default is to return active ProcedureRequests.\n   * @param encounter The patient&#x27;s encounter FHIR ID.\n   * @param patient The patient FHIR ID.\n   * @param subject A parameter\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public procedureRequestSearchOrdersSTU3(\n    requester: string,\n    status: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleProcedureRequestSTU3>;\n  public procedureRequestSearchOrdersSTU3(\n    requester: string,\n    status: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleProcedureRequestSTU3>>;\n  public procedureRequestSearchOrdersSTU3(\n    requester: string,\n    status: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleProcedureRequestSTU3>>;\n  public procedureRequestSearchOrdersSTU3(\n    requester: string,\n    status: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (requester === null || requester === undefined) {\n      throw new Error(\n        'Required parameter requester was null or undefined when calling procedureRequestSearchOrdersSTU3.'\n      );\n    }\n\n    if (status === null || status === undefined) {\n      throw new Error(\n        'Required parameter status was null or undefined when calling procedureRequestSearchOrdersSTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (encounter !== undefined && encounter !== null) {\n      queryParameters = queryParameters.set('encounter', <any>encounter);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (requester !== undefined && requester !== null) {\n      queryParameters = queryParameters.set('requester', <any>requester);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleProcedureRequestSTU3>(\n      'get',\n      `${this.basePath}/STU3/ProcedureRequest`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { ProvenanceR4 } from '../model/provenanceR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ProvenanceService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID Provenance FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public provenanceReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ProvenanceR4>;\n  public provenanceReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ProvenanceR4>>;\n  public provenanceReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ProvenanceR4>>;\n  public provenanceReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling provenanceReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ProvenanceR4>(\n      'get',\n      `${this.basePath}/R4/Provenance/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleQuestionnaireR4 } from '../model/bundleQuestionnaireR4';\nimport { QuestionnaireR4 } from '../model/questionnaireR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class QuestionnaireService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The Questionaire Fhir ID\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public questionnaireReadPatientEnteredQuestionnairesR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<QuestionnaireR4>;\n  public questionnaireReadPatientEnteredQuestionnairesR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<QuestionnaireR4>>;\n  public questionnaireReadPatientEnteredQuestionnairesR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<QuestionnaireR4>>;\n  public questionnaireReadPatientEnteredQuestionnairesR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling questionnaireReadPatientEnteredQuestionnairesR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<QuestionnaireR4>(\n      'get',\n      `${this.basePath}/R4/Questionnaire/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public questionnaireSearchPatientEnteredQuestionnairesR4(\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleQuestionnaireR4>;\n  public questionnaireSearchPatientEnteredQuestionnairesR4(\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleQuestionnaireR4>>;\n  public questionnaireSearchPatientEnteredQuestionnairesR4(\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleQuestionnaireR4>>;\n  public questionnaireSearchPatientEnteredQuestionnairesR4(\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleQuestionnaireR4>(\n      'get',\n      `${this.basePath}/R4/Questionnaire`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleQuestionnaireResponseR4 } from '../model/bundleQuestionnaireResponseR4';\nimport { QuestionnaireResponseR4 } from '../model/questionnaireResponseR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class QuestionnaireResponseService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param body payload\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public questionnaireResponseCreatePatientEnteredQuestionnairesR4(\n    body: QuestionnaireResponseR4,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<QuestionnaireResponseR4>;\n  public questionnaireResponseCreatePatientEnteredQuestionnairesR4(\n    body: QuestionnaireResponseR4,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<QuestionnaireResponseR4>>;\n  public questionnaireResponseCreatePatientEnteredQuestionnairesR4(\n    body: QuestionnaireResponseR4,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<QuestionnaireResponseR4>>;\n  public questionnaireResponseCreatePatientEnteredQuestionnairesR4(\n    body: QuestionnaireResponseR4,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (body === null || body === undefined) {\n      throw new Error(\n        'Required parameter body was null or undefined when calling questionnaireResponseCreatePatientEnteredQuestionnairesR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = ['application/json'];\n    const httpContentTypeSelected: string | undefined =\n      this.configuration.selectHeaderContentType(consumes);\n    if (httpContentTypeSelected != undefined) {\n      headers = headers.set('Content-Type', httpContentTypeSelected);\n    }\n\n    return this.httpClient.request<QuestionnaireResponseR4>(\n      'post',\n      `${this.basePath}/R4/QuestionnaireResponse`,\n      {\n        body: body,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR identifier for a Questionaire resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public questionnaireResponseReadPatientEnteredQuestionnairesR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<QuestionnaireResponseR4>;\n  public questionnaireResponseReadPatientEnteredQuestionnairesR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<QuestionnaireResponseR4>>;\n  public questionnaireResponseReadPatientEnteredQuestionnairesR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<QuestionnaireResponseR4>>;\n  public questionnaireResponseReadPatientEnteredQuestionnairesR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling questionnaireResponseReadPatientEnteredQuestionnairesR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<QuestionnaireResponseR4>(\n      'get',\n      `${this.basePath}/R4/QuestionnaireResponse/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient FHIR Patient ID. All patient-entered questionnaire responses from the specified patient will be returned. Multiple patients cannot be referenced in the search request.\n   * @param encounter FHIR Encounter IDs. If provided, the search returns only those patient-entered questionnaire responses associated with the specified encounter(s).\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public questionnaireResponseSearchPatientEnteredQuestionnairesR4(\n    patient: string,\n    encounter?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleQuestionnaireResponseR4>;\n  public questionnaireResponseSearchPatientEnteredQuestionnairesR4(\n    patient: string,\n    encounter?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleQuestionnaireResponseR4>>;\n  public questionnaireResponseSearchPatientEnteredQuestionnairesR4(\n    patient: string,\n    encounter?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleQuestionnaireResponseR4>>;\n  public questionnaireResponseSearchPatientEnteredQuestionnairesR4(\n    patient: string,\n    encounter?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling questionnaireResponseSearchPatientEnteredQuestionnairesR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (encounter !== undefined && encounter !== null) {\n      queryParameters = queryParameters.set('encounter', <any>encounter);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleQuestionnaireResponseR4>(\n      'get',\n      `${this.basePath}/R4/QuestionnaireResponse`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { CommunicationR4 } from '../model/communicationR4';\nimport { TaskR4 } from '../model/taskR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadCommunityResourceR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The FHIR identifier for the target Communication resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public communicationReadCommunityResourceR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<CommunicationR4>;\n  public communicationReadCommunityResourceR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<CommunicationR4>>;\n  public communicationReadCommunityResourceR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<CommunicationR4>>;\n  public communicationReadCommunityResourceR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling communicationReadCommunityResourceR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<CommunicationR4>(\n      'get',\n      `${this.basePath}/R4/Communication/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR identifier for a Task resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public taskReadCommunityResourceR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<TaskR4>;\n  public taskReadCommunityResourceR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<TaskR4>>;\n  public taskReadCommunityResourceR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<TaskR4>>;\n  public taskReadCommunityResourceR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling taskReadCommunityResourceR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<TaskR4>(\n      'get',\n      `${this.basePath}/R4/Task/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { AllergyIntoleranceDSTU2 } from '../model/allergyIntoleranceDSTU2';\nimport { DeviceDSTU2 } from '../model/deviceDSTU2';\nimport { ImmunizationDSTU2 } from '../model/immunizationDSTU2';\nimport { MedicationDSTU2 } from '../model/medicationDSTU2';\nimport { MedicationOrderDSTU2 } from '../model/medicationOrderDSTU2';\nimport { MedicationStatementDSTU2 } from '../model/medicationStatementDSTU2';\nimport { PatientDSTU2 } from '../model/patientDSTU2';\nimport { PractitionerDSTU2 } from '../model/practitionerDSTU2';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadDSTU2Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The AllergyIntolerance FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public allergyIntoleranceReadDSTU2(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<AllergyIntoleranceDSTU2>;\n  public allergyIntoleranceReadDSTU2(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<AllergyIntoleranceDSTU2>>;\n  public allergyIntoleranceReadDSTU2(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<AllergyIntoleranceDSTU2>>;\n  public allergyIntoleranceReadDSTU2(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling allergyIntoleranceReadDSTU2.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<AllergyIntoleranceDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/AllergyIntolerance/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The Device FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public deviceReadDSTU2(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<DeviceDSTU2>;\n  public deviceReadDSTU2(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<DeviceDSTU2>>;\n  public deviceReadDSTU2(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<DeviceDSTU2>>;\n  public deviceReadDSTU2(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling deviceReadDSTU2.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<DeviceDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Device/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID Immunization FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public immunizationReadDSTU2(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ImmunizationDSTU2>;\n  public immunizationReadDSTU2(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ImmunizationDSTU2>>;\n  public immunizationReadDSTU2(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ImmunizationDSTU2>>;\n  public immunizationReadDSTU2(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling immunizationReadDSTU2.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ImmunizationDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Immunization/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR ID of the MedicationOrder resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationOrderReadDSTU2(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<MedicationOrderDSTU2>;\n  public medicationOrderReadDSTU2(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<MedicationOrderDSTU2>>;\n  public medicationOrderReadDSTU2(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<MedicationOrderDSTU2>>;\n  public medicationOrderReadDSTU2(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling medicationOrderReadDSTU2.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<MedicationOrderDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/MedicationOrder/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID &lt;p&gt;The FHIR ID referencing a medication.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationReadDSTU2(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<MedicationDSTU2>;\n  public medicationReadDSTU2(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<MedicationDSTU2>>;\n  public medicationReadDSTU2(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<MedicationDSTU2>>;\n  public medicationReadDSTU2(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling medicationReadDSTU2.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<MedicationDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Medication/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The FHIR ID of the MedicationStatement resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationStatementReadDSTU2(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<MedicationStatementDSTU2>;\n  public medicationStatementReadDSTU2(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<MedicationStatementDSTU2>>;\n  public medicationStatementReadDSTU2(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<MedicationStatementDSTU2>>;\n  public medicationStatementReadDSTU2(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling medicationStatementReadDSTU2.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<MedicationStatementDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/MedicationStatement/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The Patient&#x27;s FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public patientReadDSTU2(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<PatientDSTU2>;\n  public patientReadDSTU2(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<PatientDSTU2>>;\n  public patientReadDSTU2(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<PatientDSTU2>>;\n  public patientReadDSTU2(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling patientReadDSTU2.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<PatientDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Patient/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The FHIR ID of a practitioner.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public practitionerReadDSTU2(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<PractitionerDSTU2>;\n  public practitionerReadDSTU2(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<PractitionerDSTU2>>;\n  public practitionerReadDSTU2(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<PractitionerDSTU2>>;\n  public practitionerReadDSTU2(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling practitionerReadDSTU2.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<PractitionerDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Practitioner/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { ConsentR4 } from '../model/consentR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadDocumentR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The FHIR ID for a Consent resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public consentReadDocumentR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ConsentR4>;\n  public consentReadDocumentR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ConsentR4>>;\n  public consentReadDocumentR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ConsentR4>>;\n  public consentReadDocumentR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling consentReadDocumentR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ConsentR4>(\n      'get',\n      `${this.basePath}/R4/Consent/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { ConsentSTU3 } from '../model/consentSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadDocumentSTU3Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The Consent FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public consentReadDocumentSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ConsentSTU3>;\n  public consentReadDocumentSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ConsentSTU3>>;\n  public consentReadDocumentSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ConsentSTU3>>;\n  public consentReadDocumentSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling consentReadDocumentSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ConsentSTU3>(\n      'get',\n      `${this.basePath}/STU3/Consent/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { ConditionSTU3 } from '../model/conditionSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadEncounterDiagnosisProblemsSTU3Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The Condition FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public conditionReadEncounterDiagnosisProblemsSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ConditionSTU3>;\n  public conditionReadEncounterDiagnosisProblemsSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ConditionSTU3>>;\n  public conditionReadEncounterDiagnosisProblemsSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ConditionSTU3>>;\n  public conditionReadEncounterDiagnosisProblemsSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling conditionReadEncounterDiagnosisProblemsSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ConditionSTU3>(\n      'get',\n      `${this.basePath}/STU3/Condition/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { CarePlanDSTU2 } from '../model/carePlanDSTU2';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadEncounterLevelLongitudinalDSTU2Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The CarePlan FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public carePlanReadEncounterLevelLongitudinalDSTU2(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<CarePlanDSTU2>;\n  public carePlanReadEncounterLevelLongitudinalDSTU2(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<CarePlanDSTU2>>;\n  public carePlanReadEncounterLevelLongitudinalDSTU2(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<CarePlanDSTU2>>;\n  public carePlanReadEncounterLevelLongitudinalDSTU2(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling carePlanReadEncounterLevelLongitudinalDSTU2.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<CarePlanDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/CarePlan/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { CareTeamR4 } from '../model/careTeamR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadEpisodeR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR ID for this CareTeam instance\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public careTeamReadEpisodeR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<CareTeamR4>;\n  public careTeamReadEpisodeR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<CareTeamR4>>;\n  public careTeamReadEpisodeR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<CareTeamR4>>;\n  public careTeamReadEpisodeR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling careTeamReadEpisodeR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<CareTeamR4>(\n      'get',\n      `${this.basePath}/R4/CareTeam/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BinaryDSTU2 } from '../model/binaryDSTU2';\nimport { DocumentReferenceDSTU2 } from '../model/documentReferenceDSTU2';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadGeneratedCCDADSTU2Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID &lt;p&gt;The FHIR ID.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public binaryReadGeneratedCCDADSTU2(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BinaryDSTU2>;\n  public binaryReadGeneratedCCDADSTU2(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BinaryDSTU2>>;\n  public binaryReadGeneratedCCDADSTU2(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BinaryDSTU2>>;\n  public binaryReadGeneratedCCDADSTU2(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling binaryReadGeneratedCCDADSTU2.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BinaryDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Binary/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The DocumentReference FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public documentReferenceReadGeneratedCCDADSTU2(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<DocumentReferenceDSTU2>;\n  public documentReferenceReadGeneratedCCDADSTU2(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<DocumentReferenceDSTU2>>;\n  public documentReferenceReadGeneratedCCDADSTU2(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<DocumentReferenceDSTU2>>;\n  public documentReferenceReadGeneratedCCDADSTU2(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling documentReferenceReadGeneratedCCDADSTU2.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<DocumentReferenceDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/DocumentReference/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { DeviceR4 } from '../model/deviceR4';\nimport { DeviceUseStatementR4 } from '../model/deviceUseStatementR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadImplantsR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The Device FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public deviceReadImplantsR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<DeviceR4>;\n  public deviceReadImplantsR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<DeviceR4>>;\n  public deviceReadImplantsR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<DeviceR4>>;\n  public deviceReadImplantsR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling deviceReadImplantsR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<DeviceR4>(\n      'get',\n      `${this.basePath}/R4/Device/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The DeviceUseStatement FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public deviceUseStatementReadImplantsR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<DeviceUseStatementR4>;\n  public deviceUseStatementReadImplantsR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<DeviceUseStatementR4>>;\n  public deviceUseStatementReadImplantsR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<DeviceUseStatementR4>>;\n  public deviceUseStatementReadImplantsR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling deviceUseStatementReadImplantsR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<DeviceUseStatementR4>(\n      'get',\n      `${this.basePath}/R4/DeviceUseStatement/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { DeviceSTU3 } from '../model/deviceSTU3';\nimport { DeviceUseStatementSTU3 } from '../model/deviceUseStatementSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadImplantsandExternalDevicesSTU3Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The Device FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public deviceReadImplantsandExternalDevicesSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<DeviceSTU3>;\n  public deviceReadImplantsandExternalDevicesSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<DeviceSTU3>>;\n  public deviceReadImplantsandExternalDevicesSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<DeviceSTU3>>;\n  public deviceReadImplantsandExternalDevicesSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling deviceReadImplantsandExternalDevicesSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<DeviceSTU3>(\n      'get',\n      `${this.basePath}/STU3/Device/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The DeviceUseStatement FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public deviceUseStatementReadImplantsandExternalDevicesSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<DeviceUseStatementSTU3>;\n  public deviceUseStatementReadImplantsandExternalDevicesSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<DeviceUseStatementSTU3>>;\n  public deviceUseStatementReadImplantsandExternalDevicesSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<DeviceUseStatementSTU3>>;\n  public deviceUseStatementReadImplantsandExternalDevicesSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling deviceUseStatementReadImplantsandExternalDevicesSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<DeviceUseStatementSTU3>(\n      'get',\n      `${this.basePath}/STU3/DeviceUseStatement/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { RequestGroupR4 } from '../model/requestGroupR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadOncologyPlanDayR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR identifier for a RequestGroup resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public requestGroupReadOncologyPlanDayR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<RequestGroupR4>;\n  public requestGroupReadOncologyPlanDayR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<RequestGroupR4>>;\n  public requestGroupReadOncologyPlanDayR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<RequestGroupR4>>;\n  public requestGroupReadOncologyPlanDayR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling requestGroupReadOncologyPlanDayR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<RequestGroupR4>(\n      'get',\n      `${this.basePath}/R4/RequestGroup/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { ProcedureDSTU2 } from '../model/procedureDSTU2';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadOrdersDSTU2Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The Procedure FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public procedureReadOrdersDSTU2(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ProcedureDSTU2>;\n  public procedureReadOrdersDSTU2(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ProcedureDSTU2>>;\n  public procedureReadOrdersDSTU2(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ProcedureDSTU2>>;\n  public procedureReadOrdersDSTU2(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling procedureReadOrdersDSTU2.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ProcedureDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Procedure/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { MedicationRequestR4 } from '../model/medicationRequestR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadOrdersR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID A medicationRequest FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationRequestReadOrdersR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<MedicationRequestR4>;\n  public medicationRequestReadOrdersR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<MedicationRequestR4>>;\n  public medicationRequestReadOrdersR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<MedicationRequestR4>>;\n  public medicationRequestReadOrdersR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling medicationRequestReadOrdersR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<MedicationRequestR4>(\n      'get',\n      `${this.basePath}/R4/MedicationRequest/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { MedicationRequestSTU3 } from '../model/medicationRequestSTU3';\nimport { ProcedureRequestSTU3 } from '../model/procedureRequestSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadOrdersSTU3Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID A medicationRequest FHIR ID\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationRequestReadOrdersSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<MedicationRequestSTU3>;\n  public medicationRequestReadOrdersSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<MedicationRequestSTU3>>;\n  public medicationRequestReadOrdersSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<MedicationRequestSTU3>>;\n  public medicationRequestReadOrdersSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling medicationRequestReadOrdersSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<MedicationRequestSTU3>(\n      'get',\n      `${this.basePath}/STU3/MedicationRequest/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR ProcedureRequest ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public procedureRequestReadOrdersSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ProcedureRequestSTU3>;\n  public procedureRequestReadOrdersSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ProcedureRequestSTU3>>;\n  public procedureRequestReadOrdersSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ProcedureRequestSTU3>>;\n  public procedureRequestReadOrdersSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling procedureRequestReadOrdersSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ProcedureRequestSTU3>(\n      'get',\n      `${this.basePath}/STU3/ProcedureRequest/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { ProcedureSTU3 } from '../model/procedureSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadOrdersSurgeriesSTU3Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The Procedure FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public procedureReadOrdersSurgeriesSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ProcedureSTU3>;\n  public procedureReadOrdersSurgeriesSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ProcedureSTU3>>;\n  public procedureReadOrdersSurgeriesSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ProcedureSTU3>>;\n  public procedureReadOrdersSurgeriesSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling procedureReadOrdersSurgeriesSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ProcedureSTU3>(\n      'get',\n      `${this.basePath}/STU3/Procedure/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { GoalDSTU2 } from '../model/goalDSTU2';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadPatientDSTU2Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The Goal FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public goalReadPatientDSTU2(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<GoalDSTU2>;\n  public goalReadPatientDSTU2(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<GoalDSTU2>>;\n  public goalReadPatientDSTU2(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<GoalDSTU2>>;\n  public goalReadPatientDSTU2(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling goalReadPatientDSTU2.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<GoalDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Goal/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { QuestionnaireR4 } from '../model/questionnaireR4';\nimport { QuestionnaireResponseR4 } from '../model/questionnaireResponseR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadPatientEnteredQuestionnairesR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The Questionaire Fhir ID\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public questionnaireReadPatientEnteredQuestionnairesR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<QuestionnaireR4>;\n  public questionnaireReadPatientEnteredQuestionnairesR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<QuestionnaireR4>>;\n  public questionnaireReadPatientEnteredQuestionnairesR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<QuestionnaireR4>>;\n  public questionnaireReadPatientEnteredQuestionnairesR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling questionnaireReadPatientEnteredQuestionnairesR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<QuestionnaireR4>(\n      'get',\n      `${this.basePath}/R4/Questionnaire/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR identifier for a Questionaire resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public questionnaireResponseReadPatientEnteredQuestionnairesR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<QuestionnaireResponseR4>;\n  public questionnaireResponseReadPatientEnteredQuestionnairesR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<QuestionnaireResponseR4>>;\n  public questionnaireResponseReadPatientEnteredQuestionnairesR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<QuestionnaireResponseR4>>;\n  public questionnaireResponseReadPatientEnteredQuestionnairesR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling questionnaireResponseReadPatientEnteredQuestionnairesR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<QuestionnaireResponseR4>(\n      'get',\n      `${this.basePath}/R4/QuestionnaireResponse/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { FlagR4 } from '../model/flagR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadPatientFYIR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The Flag FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public flagReadPatientFYIR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<FlagR4>;\n  public flagReadPatientFYIR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<FlagR4>>;\n  public flagReadPatientFYIR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<FlagR4>>;\n  public flagReadPatientFYIR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling flagReadPatientFYIR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<FlagR4>(\n      'get',\n      `${this.basePath}/R4/Flag/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { FlagSTU3 } from '../model/flagSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadPatientFYISTU3Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The Flag FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public flagReadPatientFYISTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<FlagSTU3>;\n  public flagReadPatientFYISTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<FlagSTU3>>;\n  public flagReadPatientFYISTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<FlagSTU3>>;\n  public flagReadPatientFYISTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling flagReadPatientFYISTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<FlagSTU3>(\n      'get',\n      `${this.basePath}/STU3/Flag/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { GoalR4 } from '../model/goalR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadPatientR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The Goal FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public goalReadPatientR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<GoalR4>;\n  public goalReadPatientR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<GoalR4>>;\n  public goalReadPatientR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<GoalR4>>;\n  public goalReadPatientR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling goalReadPatientR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<GoalR4>(\n      'get',\n      `${this.basePath}/R4/Goal/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { GoalSTU3 } from '../model/goalSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadPatientSTU3Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The Goal FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public goalReadPatientSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<GoalSTU3>;\n  public goalReadPatientSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<GoalSTU3>>;\n  public goalReadPatientSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<GoalSTU3>>;\n  public goalReadPatientSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling goalReadPatientSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<GoalSTU3>(\n      'get',\n      `${this.basePath}/STU3/Goal/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { ListSTU3 } from '../model/listSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadPatientsWithQuestionnairesDueSTU3Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The encoded list ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public listReadPatientsWithQuestionnairesDueSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ListSTU3>;\n  public listReadPatientsWithQuestionnairesDueSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ListSTU3>>;\n  public listReadPatientsWithQuestionnairesDueSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ListSTU3>>;\n  public listReadPatientsWithQuestionnairesDueSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling listReadPatientsWithQuestionnairesDueSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ListSTU3>(\n      'get',\n      `${this.basePath}/STU3/List/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { ConditionDSTU2 } from '../model/conditionDSTU2';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadProblemsDSTU2Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The Condition FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public conditionReadProblemsDSTU2(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ConditionDSTU2>;\n  public conditionReadProblemsDSTU2(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ConditionDSTU2>>;\n  public conditionReadProblemsDSTU2(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ConditionDSTU2>>;\n  public conditionReadProblemsDSTU2(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling conditionReadProblemsDSTU2.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ConditionDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Condition/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { ListR4 } from '../model/listR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadProblemsR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The List FHIR ID\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public listReadProblemsR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ListR4>;\n  public listReadProblemsR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ListR4>>;\n  public listReadProblemsR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ListR4>>;\n  public listReadProblemsR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling listReadProblemsR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ListR4>(\n      'get',\n      `${this.basePath}/R4/List/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { CarePlanR4 } from '../model/carePlanR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadQuestionnairesDueR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR identifier for a CarePlan resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public carePlanReadQuestionnairesDueR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<CarePlanR4>;\n  public carePlanReadQuestionnairesDueR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<CarePlanR4>>;\n  public carePlanReadQuestionnairesDueR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<CarePlanR4>>;\n  public carePlanReadQuestionnairesDueR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling carePlanReadQuestionnairesDueR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<CarePlanR4>(\n      'get',\n      `${this.basePath}/R4/CarePlan/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { AdverseEventR4 } from '../model/adverseEventR4';\nimport { AllergyIntoleranceR4 } from '../model/allergyIntoleranceR4';\nimport { CoverageR4 } from '../model/coverageR4';\nimport { DeviceRequestR4 } from '../model/deviceRequestR4';\nimport { EncounterR4 } from '../model/encounterR4';\nimport { EndpointR4 } from '../model/endpointR4';\nimport { EpisodeOfCareR4 } from '../model/episodeOfCareR4';\nimport { ExplanationOfBenefitR4 } from '../model/explanationOfBenefitR4';\nimport { FamilyMemberHistoryR4 } from '../model/familyMemberHistoryR4';\nimport { ImmunizationR4 } from '../model/immunizationR4';\nimport { ImmunizationRecommendationR4 } from '../model/immunizationRecommendationR4';\nimport { LocationR4 } from '../model/locationR4';\nimport { MedicationR4 } from '../model/medicationR4';\nimport { NutritionOrderR4 } from '../model/nutritionOrderR4';\nimport { OrganizationR4 } from '../model/organizationR4';\nimport { PatientR4 } from '../model/patientR4';\nimport { PractitionerR4 } from '../model/practitionerR4';\nimport { PractitionerRoleR4 } from '../model/practitionerRoleR4';\nimport { ProvenanceR4 } from '../model/provenanceR4';\nimport { RelatedPersonR4 } from '../model/relatedPersonR4';\nimport { ResearchStudyR4 } from '../model/researchStudyR4';\nimport { ResearchSubjectR4 } from '../model/researchSubjectR4';\nimport { SpecimenR4 } from '../model/specimenR4';\nimport { SubstanceR4 } from '../model/substanceR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The Adverse Event FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public adverseEventReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<AdverseEventR4>;\n  public adverseEventReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<AdverseEventR4>>;\n  public adverseEventReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<AdverseEventR4>>;\n  public adverseEventReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling adverseEventReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<AdverseEventR4>(\n      'get',\n      `${this.basePath}/R4/AdverseEvent/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The AllergyIntolerance FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public allergyIntoleranceReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<AllergyIntoleranceR4>;\n  public allergyIntoleranceReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<AllergyIntoleranceR4>>;\n  public allergyIntoleranceReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<AllergyIntoleranceR4>>;\n  public allergyIntoleranceReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling allergyIntoleranceReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<AllergyIntoleranceR4>(\n      'get',\n      `${this.basePath}/R4/AllergyIntolerance/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The FHIR Coverage ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public coverageReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<CoverageR4>;\n  public coverageReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<CoverageR4>>;\n  public coverageReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<CoverageR4>>;\n  public coverageReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling coverageReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<CoverageR4>(\n      'get',\n      `${this.basePath}/R4/Coverage/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The DeviceRequest FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public deviceRequestReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<DeviceRequestR4>;\n  public deviceRequestReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<DeviceRequestR4>>;\n  public deviceRequestReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<DeviceRequestR4>>;\n  public deviceRequestReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling deviceRequestReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<DeviceRequestR4>(\n      'get',\n      `${this.basePath}/R4/DeviceRequest/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The Encounter FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public encounterReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<EncounterR4>;\n  public encounterReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<EncounterR4>>;\n  public encounterReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<EncounterR4>>;\n  public encounterReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling encounterReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<EncounterR4>(\n      'get',\n      `${this.basePath}/R4/Encounter/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID &lt;p&gt;The FHIR ID.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public endpointReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<EndpointR4>;\n  public endpointReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<EndpointR4>>;\n  public endpointReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<EndpointR4>>;\n  public endpointReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling endpointReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<EndpointR4>(\n      'get',\n      `${this.basePath}/R4/Endpoint/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR ID for this EpisodeOfCare instance.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public episodeOfCareReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<EpisodeOfCareR4>;\n  public episodeOfCareReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<EpisodeOfCareR4>>;\n  public episodeOfCareReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<EpisodeOfCareR4>>;\n  public episodeOfCareReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling episodeOfCareReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<EpisodeOfCareR4>(\n      'get',\n      `${this.basePath}/R4/EpisodeOfCare/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The FHIR ID for an ExplanationOfBenefit resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public explanationOfBenefitReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ExplanationOfBenefitR4>;\n  public explanationOfBenefitReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ExplanationOfBenefitR4>>;\n  public explanationOfBenefitReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ExplanationOfBenefitR4>>;\n  public explanationOfBenefitReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling explanationOfBenefitReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ExplanationOfBenefitR4>(\n      'get',\n      `${this.basePath}/R4/ExplanationOfBenefit/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR ID for this FamilyMemberHistory instance\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public familyMemberHistoryReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<FamilyMemberHistoryR4>;\n  public familyMemberHistoryReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<FamilyMemberHistoryR4>>;\n  public familyMemberHistoryReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<FamilyMemberHistoryR4>>;\n  public familyMemberHistoryReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling familyMemberHistoryReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<FamilyMemberHistoryR4>(\n      'get',\n      `${this.basePath}/R4/FamilyMemberHistory/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The Immunization FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public immunizationReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ImmunizationR4>;\n  public immunizationReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ImmunizationR4>>;\n  public immunizationReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ImmunizationR4>>;\n  public immunizationReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling immunizationReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ImmunizationR4>(\n      'get',\n      `${this.basePath}/R4/Immunization/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The FHIR ID of the recommended immunization order.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public immunizationRecommendationReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ImmunizationRecommendationR4>;\n  public immunizationRecommendationReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ImmunizationRecommendationR4>>;\n  public immunizationRecommendationReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ImmunizationRecommendationR4>>;\n  public immunizationRecommendationReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling immunizationRecommendationReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ImmunizationRecommendationR4>(\n      'get',\n      `${this.basePath}/R4/ImmunizationRecommendation/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The Location FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public locationReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<LocationR4>;\n  public locationReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<LocationR4>>;\n  public locationReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<LocationR4>>;\n  public locationReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling locationReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<LocationR4>(\n      'get',\n      `${this.basePath}/R4/Location/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID &lt;p&gt;The FHIR ID referencing a medication.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<MedicationR4>;\n  public medicationReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<MedicationR4>>;\n  public medicationReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<MedicationR4>>;\n  public medicationReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling medicationReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<MedicationR4>(\n      'get',\n      `${this.basePath}/R4/Medication/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR identifier for a NutritionOrder resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public nutritionOrderReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<NutritionOrderR4>;\n  public nutritionOrderReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<NutritionOrderR4>>;\n  public nutritionOrderReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<NutritionOrderR4>>;\n  public nutritionOrderReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling nutritionOrderReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<NutritionOrderR4>(\n      'get',\n      `${this.basePath}/R4/NutritionOrder/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID &lt;p&gt;The Organization FHIR ID.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public organizationReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<OrganizationR4>;\n  public organizationReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<OrganizationR4>>;\n  public organizationReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<OrganizationR4>>;\n  public organizationReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling organizationReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<OrganizationR4>(\n      'get',\n      `${this.basePath}/R4/Organization/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The patient FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public patientReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<PatientR4>;\n  public patientReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<PatientR4>>;\n  public patientReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<PatientR4>>;\n  public patientReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling patientReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<PatientR4>(\n      'get',\n      `${this.basePath}/R4/Patient/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The ID of a practitioner.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public practitionerReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<PractitionerR4>;\n  public practitionerReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<PractitionerR4>>;\n  public practitionerReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<PractitionerR4>>;\n  public practitionerReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling practitionerReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<PractitionerR4>(\n      'get',\n      `${this.basePath}/R4/Practitioner/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The read interaction enables the look up of a PractitionerRole resource by a constant server ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public practitionerRoleReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<PractitionerRoleR4>;\n  public practitionerRoleReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<PractitionerRoleR4>>;\n  public practitionerRoleReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<PractitionerRoleR4>>;\n  public practitionerRoleReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling practitionerRoleReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<PractitionerRoleR4>(\n      'get',\n      `${this.basePath}/R4/PractitionerRole/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID Provenance FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public provenanceReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ProvenanceR4>;\n  public provenanceReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ProvenanceR4>>;\n  public provenanceReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ProvenanceR4>>;\n  public provenanceReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling provenanceReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ProvenanceR4>(\n      'get',\n      `${this.basePath}/R4/Provenance/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR identifier for a RelatedPerson resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public relatedPersonReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<RelatedPersonR4>;\n  public relatedPersonReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<RelatedPersonR4>>;\n  public relatedPersonReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<RelatedPersonR4>>;\n  public relatedPersonReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling relatedPersonReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<RelatedPersonR4>(\n      'get',\n      `${this.basePath}/R4/RelatedPerson/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The ResearchStudy FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public researchStudyReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ResearchStudyR4>;\n  public researchStudyReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ResearchStudyR4>>;\n  public researchStudyReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ResearchStudyR4>>;\n  public researchStudyReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling researchStudyReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ResearchStudyR4>(\n      'get',\n      `${this.basePath}/R4/ResearchStudy/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The research study enrollment record FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public researchSubjectReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ResearchSubjectR4>;\n  public researchSubjectReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ResearchSubjectR4>>;\n  public researchSubjectReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ResearchSubjectR4>>;\n  public researchSubjectReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling researchSubjectReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ResearchSubjectR4>(\n      'get',\n      `${this.basePath}/R4/ResearchSubject/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The Specimen FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public specimenReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<SpecimenR4>;\n  public specimenReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<SpecimenR4>>;\n  public specimenReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<SpecimenR4>>;\n  public specimenReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling specimenReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<SpecimenR4>(\n      'get',\n      `${this.basePath}/R4/Specimen/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR identifier for a Substance resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public substanceReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<SubstanceR4>;\n  public substanceReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<SubstanceR4>>;\n  public substanceReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<SubstanceR4>>;\n  public substanceReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling substanceReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<SubstanceR4>(\n      'get',\n      `${this.basePath}/R4/Substance/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BinaryR4 } from '../model/binaryR4';\nimport { DocumentReferenceR4 } from '../model/documentReferenceR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadRadiologyResultsR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID &lt;p&gt;The Binary FHIR ID.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public binaryReadRadiologyResultsR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BinaryR4>;\n  public binaryReadRadiologyResultsR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BinaryR4>>;\n  public binaryReadRadiologyResultsR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BinaryR4>>;\n  public binaryReadRadiologyResultsR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling binaryReadRadiologyResultsR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BinaryR4>(\n      'get',\n      `${this.basePath}/R4/Binary/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The DocumentReference FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public documentReferenceReadRadiologyResultsR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<DocumentReferenceR4>;\n  public documentReferenceReadRadiologyResultsR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<DocumentReferenceR4>>;\n  public documentReferenceReadRadiologyResultsR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<DocumentReferenceR4>>;\n  public documentReferenceReadRadiologyResultsR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling documentReferenceReadRadiologyResultsR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<DocumentReferenceR4>(\n      'get',\n      `${this.basePath}/R4/DocumentReference/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BinarySTU3 } from '../model/binarySTU3';\nimport { DocumentReferenceSTU3 } from '../model/documentReferenceSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadRadiologyResultsSTU3Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The Binary FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public binaryReadRadiologyResultsSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BinarySTU3>;\n  public binaryReadRadiologyResultsSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BinarySTU3>>;\n  public binaryReadRadiologyResultsSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BinarySTU3>>;\n  public binaryReadRadiologyResultsSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling binaryReadRadiologyResultsSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BinarySTU3>(\n      'get',\n      `${this.basePath}/STU3/Binary/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The DocumentReference FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public documentReferenceReadRadiologyResultsSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<DocumentReferenceSTU3>;\n  public documentReferenceReadRadiologyResultsSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<DocumentReferenceSTU3>>;\n  public documentReferenceReadRadiologyResultsSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<DocumentReferenceSTU3>>;\n  public documentReferenceReadRadiologyResultsSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling documentReferenceReadRadiologyResultsSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<DocumentReferenceSTU3>(\n      'get',\n      `${this.basePath}/STU3/DocumentReference/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { ConditionR4 } from '../model/conditionR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadReasonforVisitR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR identifier for the target Condition resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public conditionReadReasonforVisitR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ConditionR4>;\n  public conditionReadReasonforVisitR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ConditionR4>>;\n  public conditionReadReasonforVisitR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ConditionR4>>;\n  public conditionReadReasonforVisitR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling conditionReadReasonforVisitR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ConditionR4>(\n      'get',\n      `${this.basePath}/R4/Condition/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { ServiceRequestR4 } from '../model/serviceRequestR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadReferralR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR ServiceRequest ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public serviceRequestReadReferralR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ServiceRequestR4>;\n  public serviceRequestReadReferralR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ServiceRequestR4>>;\n  public serviceRequestReadReferralR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ServiceRequestR4>>;\n  public serviceRequestReadReferralR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling serviceRequestReadReferralR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ServiceRequestR4>(\n      'get',\n      `${this.basePath}/R4/ServiceRequest/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { DiagnosticReportDSTU2 } from '../model/diagnosticReportDSTU2';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadResultsDSTU2Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The DiagnosticReport FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public diagnosticReportReadResultsDSTU2(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<DiagnosticReportDSTU2>;\n  public diagnosticReportReadResultsDSTU2(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<DiagnosticReportDSTU2>>;\n  public diagnosticReportReadResultsDSTU2(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<DiagnosticReportDSTU2>>;\n  public diagnosticReportReadResultsDSTU2(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling diagnosticReportReadResultsDSTU2.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<DiagnosticReportDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/DiagnosticReport/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { DiagnosticReportR4 } from '../model/diagnosticReportR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadResultsR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The DiagnosticReport FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public diagnosticReportReadResultsR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<DiagnosticReportR4>;\n  public diagnosticReportReadResultsR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<DiagnosticReportR4>>;\n  public diagnosticReportReadResultsR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<DiagnosticReportR4>>;\n  public diagnosticReportReadResultsR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling diagnosticReportReadResultsR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<DiagnosticReportR4>(\n      'get',\n      `${this.basePath}/R4/DiagnosticReport/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { DiagnosticReportSTU3 } from '../model/diagnosticReportSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadResultsSTU3Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The DiagnosticReport FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public diagnosticReportReadResultsSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<DiagnosticReportSTU3>;\n  public diagnosticReportReadResultsSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<DiagnosticReportSTU3>>;\n  public diagnosticReportReadResultsSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<DiagnosticReportSTU3>>;\n  public diagnosticReportReadResultsSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling diagnosticReportReadResultsSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<DiagnosticReportSTU3>(\n      'get',\n      `${this.basePath}/STU3/DiagnosticReport/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { AllergyIntoleranceSTU3 } from '../model/allergyIntoleranceSTU3';\nimport { AppointmentSTU3 } from '../model/appointmentSTU3';\nimport { CoverageSTU3 } from '../model/coverageSTU3';\nimport { DeviceRequestSTU3 } from '../model/deviceRequestSTU3';\nimport { EncounterSTU3 } from '../model/encounterSTU3';\nimport { EndpointSTU3 } from '../model/endpointSTU3';\nimport { ImmunizationRecommendationSTU3 } from '../model/immunizationRecommendationSTU3';\nimport { ImmunizationSTU3 } from '../model/immunizationSTU3';\nimport { LocationSTU3 } from '../model/locationSTU3';\nimport { MedicationSTU3 } from '../model/medicationSTU3';\nimport { MedicationStatementSTU3 } from '../model/medicationStatementSTU3';\nimport { NutritionOrderSTU3 } from '../model/nutritionOrderSTU3';\nimport { OrganizationSTU3 } from '../model/organizationSTU3';\nimport { PatientSTU3 } from '../model/patientSTU3';\nimport { PractitionerRoleSTU3 } from '../model/practitionerRoleSTU3';\nimport { PractitionerSTU3 } from '../model/practitionerSTU3';\nimport { ScheduleSTU3 } from '../model/scheduleSTU3';\nimport { SlotSTU3 } from '../model/slotSTU3';\nimport { SpecimenSTU3 } from '../model/specimenSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadSTU3Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The AllergyIntolerance FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public allergyIntoleranceReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<AllergyIntoleranceSTU3>;\n  public allergyIntoleranceReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<AllergyIntoleranceSTU3>>;\n  public allergyIntoleranceReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<AllergyIntoleranceSTU3>>;\n  public allergyIntoleranceReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling allergyIntoleranceReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<AllergyIntoleranceSTU3>(\n      'get',\n      `${this.basePath}/STU3/AllergyIntolerance/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR identifier for an Appointment resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public appointmentReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<AppointmentSTU3>;\n  public appointmentReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<AppointmentSTU3>>;\n  public appointmentReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<AppointmentSTU3>>;\n  public appointmentReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling appointmentReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<AppointmentSTU3>(\n      'get',\n      `${this.basePath}/STU3/Appointment/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The Coverage FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public coverageReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<CoverageSTU3>;\n  public coverageReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<CoverageSTU3>>;\n  public coverageReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<CoverageSTU3>>;\n  public coverageReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling coverageReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<CoverageSTU3>(\n      'get',\n      `${this.basePath}/STU3/Coverage/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The DeviceRequest FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public deviceRequestReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<DeviceRequestSTU3>;\n  public deviceRequestReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<DeviceRequestSTU3>>;\n  public deviceRequestReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<DeviceRequestSTU3>>;\n  public deviceRequestReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling deviceRequestReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<DeviceRequestSTU3>(\n      'get',\n      `${this.basePath}/STU3/DeviceRequest/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The Encounter FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public encounterReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<EncounterSTU3>;\n  public encounterReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<EncounterSTU3>>;\n  public encounterReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<EncounterSTU3>>;\n  public encounterReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling encounterReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<EncounterSTU3>(\n      'get',\n      `${this.basePath}/STU3/Encounter/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID &lt;p&gt;The FHIR ID.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public endpointReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<EndpointSTU3>;\n  public endpointReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<EndpointSTU3>>;\n  public endpointReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<EndpointSTU3>>;\n  public endpointReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling endpointReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<EndpointSTU3>(\n      'get',\n      `${this.basePath}/STU3/Endpoint/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The Immunization FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public immunizationReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ImmunizationSTU3>;\n  public immunizationReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ImmunizationSTU3>>;\n  public immunizationReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ImmunizationSTU3>>;\n  public immunizationReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling immunizationReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ImmunizationSTU3>(\n      'get',\n      `${this.basePath}/STU3/Immunization/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The FHIR ID of the recommended immunization order.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public immunizationRecommendationReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ImmunizationRecommendationSTU3>;\n  public immunizationRecommendationReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ImmunizationRecommendationSTU3>>;\n  public immunizationRecommendationReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ImmunizationRecommendationSTU3>>;\n  public immunizationRecommendationReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling immunizationRecommendationReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ImmunizationRecommendationSTU3>(\n      'get',\n      `${this.basePath}/STU3/ImmunizationRecommendation/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The Location FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public locationReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<LocationSTU3>;\n  public locationReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<LocationSTU3>>;\n  public locationReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<LocationSTU3>>;\n  public locationReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling locationReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<LocationSTU3>(\n      'get',\n      `${this.basePath}/STU3/Location/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID &lt;p&gt;The FHIR ID referencing a medication.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<MedicationSTU3>;\n  public medicationReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<MedicationSTU3>>;\n  public medicationReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<MedicationSTU3>>;\n  public medicationReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling medicationReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<MedicationSTU3>(\n      'get',\n      `${this.basePath}/STU3/Medication/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The MedicationStatement FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationStatementReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<MedicationStatementSTU3>;\n  public medicationStatementReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<MedicationStatementSTU3>>;\n  public medicationStatementReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<MedicationStatementSTU3>>;\n  public medicationStatementReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling medicationStatementReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<MedicationStatementSTU3>(\n      'get',\n      `${this.basePath}/STU3/MedicationStatement/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR identifier for a NutritionOrder resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public nutritionOrderReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<NutritionOrderSTU3>;\n  public nutritionOrderReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<NutritionOrderSTU3>>;\n  public nutritionOrderReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<NutritionOrderSTU3>>;\n  public nutritionOrderReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling nutritionOrderReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<NutritionOrderSTU3>(\n      'get',\n      `${this.basePath}/STU3/NutritionOrder/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID &lt;p&gt;The Organization FHIR ID.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public organizationReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<OrganizationSTU3>;\n  public organizationReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<OrganizationSTU3>>;\n  public organizationReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<OrganizationSTU3>>;\n  public organizationReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling organizationReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<OrganizationSTU3>(\n      'get',\n      `${this.basePath}/STU3/Organization/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The patient FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public patientReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<PatientSTU3>;\n  public patientReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<PatientSTU3>>;\n  public patientReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<PatientSTU3>>;\n  public patientReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling patientReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<PatientSTU3>(\n      'get',\n      `${this.basePath}/STU3/Patient/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The ID of a practitioner.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public practitionerReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<PractitionerSTU3>;\n  public practitionerReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<PractitionerSTU3>>;\n  public practitionerReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<PractitionerSTU3>>;\n  public practitionerReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling practitionerReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<PractitionerSTU3>(\n      'get',\n      `${this.basePath}/STU3/Practitioner/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The read interaction enables the look up of a PractitionerRole resource by a constant server ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public practitionerRoleReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<PractitionerRoleSTU3>;\n  public practitionerRoleReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<PractitionerRoleSTU3>>;\n  public practitionerRoleReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<PractitionerRoleSTU3>>;\n  public practitionerRoleReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling practitionerRoleReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<PractitionerRoleSTU3>(\n      'get',\n      `${this.basePath}/STU3/PractitionerRole/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR identifier for a Schedule resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public scheduleReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ScheduleSTU3>;\n  public scheduleReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ScheduleSTU3>>;\n  public scheduleReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ScheduleSTU3>>;\n  public scheduleReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling scheduleReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ScheduleSTU3>(\n      'get',\n      `${this.basePath}/STU3/Schedule/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR identifier for a Slot resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public slotReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<SlotSTU3>;\n  public slotReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<SlotSTU3>>;\n  public slotReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<SlotSTU3>>;\n  public slotReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling slotReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<SlotSTU3>(\n      'get',\n      `${this.basePath}/STU3/Slot/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The specimen’s FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public specimenReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<SpecimenSTU3>;\n  public specimenReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<SpecimenSTU3>>;\n  public specimenReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<SpecimenSTU3>>;\n  public specimenReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling specimenReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<SpecimenSTU3>(\n      'get',\n      `${this.basePath}/STU3/Specimen/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { ProcedureR4 } from '../model/procedureR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadSurgicalHistoryR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The Procedure FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public procedureReadSurgicalHistoryR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ProcedureR4>;\n  public procedureReadSurgicalHistoryR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ProcedureR4>>;\n  public procedureReadSurgicalHistoryR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ProcedureR4>>;\n  public procedureReadSurgicalHistoryR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling procedureReadSurgicalHistoryR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ProcedureR4>(\n      'get',\n      `${this.basePath}/R4/Procedure/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BodyStructureR4 } from '../model/bodyStructureR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadToothR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID BodyStructure identifier.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public bodyStructureReadToothR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BodyStructureR4>;\n  public bodyStructureReadToothR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BodyStructureR4>>;\n  public bodyStructureReadToothR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BodyStructureR4>>;\n  public bodyStructureReadToothR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling bodyStructureReadToothR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BodyStructureR4>(\n      'get',\n      `${this.basePath}/R4/BodyStructure/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { MedicationDispenseR4 } from '../model/medicationDispenseR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadVerifiedOrdersR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The MedicationDispense FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationDispenseReadVerifiedOrdersR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<MedicationDispenseR4>;\n  public medicationDispenseReadVerifiedOrdersR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<MedicationDispenseR4>>;\n  public medicationDispenseReadVerifiedOrdersR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<MedicationDispenseR4>>;\n  public medicationDispenseReadVerifiedOrdersR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling medicationDispenseReadVerifiedOrdersR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<MedicationDispenseR4>(\n      'get',\n      `${this.basePath}/R4/MedicationDispense/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { MedicationDispenseSTU3 } from '../model/medicationDispenseSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadVerifiedOrdersSTU3Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The MedicationDispense FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationDispenseReadVerifiedOrdersSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<MedicationDispenseSTU3>;\n  public medicationDispenseReadVerifiedOrdersSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<MedicationDispenseSTU3>>;\n  public medicationDispenseReadVerifiedOrdersSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<MedicationDispenseSTU3>>;\n  public medicationDispenseReadVerifiedOrdersSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling medicationDispenseReadVerifiedOrdersSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<MedicationDispenseSTU3>(\n      'get',\n      `${this.basePath}/STU3/MedicationDispense/${encodeURIComponent(\n        String(ID)\n      )}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { ObservationDSTU2 } from '../model/observationDSTU2';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadVitalsDSTU2Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID A parameter\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public observationReadVitalsDSTU2(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ObservationDSTU2>;\n  public observationReadVitalsDSTU2(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ObservationDSTU2>>;\n  public observationReadVitalsDSTU2(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ObservationDSTU2>>;\n  public observationReadVitalsDSTU2(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling observationReadVitalsDSTU2.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ObservationDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Observation/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { ObservationR4 } from '../model/observationR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadVitalsR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The observation FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public observationReadVitalsR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ObservationR4>;\n  public observationReadVitalsR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ObservationR4>>;\n  public observationReadVitalsR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ObservationR4>>;\n  public observationReadVitalsR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling observationReadVitalsR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ObservationR4>(\n      'get',\n      `${this.basePath}/R4/Observation/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { ObservationSTU3 } from '../model/observationSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ReadVitalsSTU3Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The observation FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public observationReadVitalsSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ObservationSTU3>;\n  public observationReadVitalsSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ObservationSTU3>>;\n  public observationReadVitalsSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ObservationSTU3>>;\n  public observationReadVitalsSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling observationReadVitalsSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ObservationSTU3>(\n      'get',\n      `${this.basePath}/STU3/Observation/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { RelatedPersonR4 } from '../model/relatedPersonR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class RelatedPersonService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR identifier for a RelatedPerson resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public relatedPersonReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<RelatedPersonR4>;\n  public relatedPersonReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<RelatedPersonR4>>;\n  public relatedPersonReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<RelatedPersonR4>>;\n  public relatedPersonReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling relatedPersonReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<RelatedPersonR4>(\n      'get',\n      `${this.basePath}/R4/RelatedPerson/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleRequestGroupR4 } from '../model/bundleRequestGroupR4';\nimport { RequestGroupR4 } from '../model/requestGroupR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class RequestGroupService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR identifier for a RequestGroup resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public requestGroupReadOncologyPlanDayR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<RequestGroupR4>;\n  public requestGroupReadOncologyPlanDayR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<RequestGroupR4>>;\n  public requestGroupReadOncologyPlanDayR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<RequestGroupR4>>;\n  public requestGroupReadOncologyPlanDayR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling requestGroupReadOncologyPlanDayR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<RequestGroupR4>(\n      'get',\n      `${this.basePath}/R4/RequestGroup/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public requestGroupSearchOncologyPlanDayR4(\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleRequestGroupR4>;\n  public requestGroupSearchOncologyPlanDayR4(\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleRequestGroupR4>>;\n  public requestGroupSearchOncologyPlanDayR4(\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleRequestGroupR4>>;\n  public requestGroupSearchOncologyPlanDayR4(\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleRequestGroupR4>(\n      'get',\n      `${this.basePath}/R4/RequestGroup`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleResearchStudyR4 } from '../model/bundleResearchStudyR4';\nimport { ResearchStudyR4 } from '../model/researchStudyR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ResearchStudyService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The ResearchStudy FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public researchStudyReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ResearchStudyR4>;\n  public researchStudyReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ResearchStudyR4>>;\n  public researchStudyReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ResearchStudyR4>>;\n  public researchStudyReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling researchStudyReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ResearchStudyR4>(\n      'get',\n      `${this.basePath}/R4/ResearchStudy/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param identifier The study code.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public researchStudySearchR4(\n    identifier: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleResearchStudyR4>;\n  public researchStudySearchR4(\n    identifier: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleResearchStudyR4>>;\n  public researchStudySearchR4(\n    identifier: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleResearchStudyR4>>;\n  public researchStudySearchR4(\n    identifier: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (identifier === null || identifier === undefined) {\n      throw new Error(\n        'Required parameter identifier was null or undefined when calling researchStudySearchR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (identifier !== undefined && identifier !== null) {\n      queryParameters = queryParameters.set('identifier', <any>identifier);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleResearchStudyR4>(\n      'get',\n      `${this.basePath}/R4/ResearchStudy`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { ResearchSubjectR4 } from '../model/researchSubjectR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ResearchSubjectService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The research study enrollment record FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public researchSubjectReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ResearchSubjectR4>;\n  public researchSubjectReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ResearchSubjectR4>>;\n  public researchSubjectReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ResearchSubjectR4>>;\n  public researchSubjectReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling researchSubjectReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ResearchSubjectR4>(\n      'get',\n      `${this.basePath}/R4/ResearchSubject/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { ScheduleSTU3 } from '../model/scheduleSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ScheduleService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR identifier for a Schedule resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public scheduleReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ScheduleSTU3>;\n  public scheduleReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ScheduleSTU3>>;\n  public scheduleReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ScheduleSTU3>>;\n  public scheduleReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling scheduleReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ScheduleSTU3>(\n      'get',\n      `${this.basePath}/STU3/Schedule/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleConsentR4 } from '../model/bundleConsentR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchCodeStatusR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param category The type of code status. Code statuses always include the Advanced Directive (acd) category from the specification of the FHIR ConsentCategoryCodes (consent-category) value set, and additional information about what type of code status.\n   * @param patient FHIR ID for the Patient the consent applies to.\n   * @param status The state of the code status for a patient. This value follows the specification of the FHIR ConsentState value set.\n   * @param subject FHIR ID for the Patient the consent applies to.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public consentSearchCodeStatusR4(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleConsentR4>;\n  public consentSearchCodeStatusR4(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleConsentR4>>;\n  public consentSearchCodeStatusR4(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleConsentR4>>;\n  public consentSearchCodeStatusR4(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleConsentR4>(\n      'get',\n      `${this.basePath}/R4/Consent`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleCommunicationR4 } from '../model/bundleCommunicationR4';\nimport { BundleTaskR4 } from '../model/bundleTaskR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchCommunityResourceR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param partOf Reference to the Task resource this Communication belongs to.\n   * @param patient Search for Communication resources for a specified patient ID. You can use both \\&quot;patient\\&quot; and \\&quot;subject\\&quot; equivalently, but if you use both they must look to the same value.\n   * @param subject Search for Communication resources for a specified subject. You can use both \\&quot;patient\\&quot; and \\&quot;subject\\&quot; equivalently, but if you use both they must look to the same value.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public communicationSearchCommunityResourceR4(\n    partOf?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleCommunicationR4>;\n  public communicationSearchCommunityResourceR4(\n    partOf?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleCommunicationR4>>;\n  public communicationSearchCommunityResourceR4(\n    partOf?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleCommunicationR4>>;\n  public communicationSearchCommunityResourceR4(\n    partOf?: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (partOf !== undefined && partOf !== null) {\n      queryParameters = queryParameters.set('part-of', <any>partOf);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleCommunicationR4>(\n      'get',\n      `${this.basePath}/R4/Communication`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param code Search for “community-resource” type of tasks only. This corresponds to Community Resource Tasks and is used to refine to only such Tasks. If not specified, all valid Task resources/subresources are returned.\n   * @param encounter Reference to the encounter that the Task  belongs to.\n   * @param patient Search for Task resources for a specified patient ID. You can use both \\&quot;patient\\&quot; and \\&quot;subject\\&quot;, but if you use both they must look to the same value.\n   * @param subject Search for Task resources for a specified subject. You can use both \\&quot;patient\\&quot; and \\&quot;subject\\&quot;, but if you use both they must look to the same value.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public taskSearchCommunityResourceR4(\n    code?: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleTaskR4>;\n  public taskSearchCommunityResourceR4(\n    code?: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleTaskR4>>;\n  public taskSearchCommunityResourceR4(\n    code?: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleTaskR4>>;\n  public taskSearchCommunityResourceR4(\n    code?: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (code !== undefined && code !== null) {\n      queryParameters = queryParameters.set('code', <any>code);\n    }\n    if (encounter !== undefined && encounter !== null) {\n      queryParameters = queryParameters.set('encounter', <any>encounter);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleTaskR4>(\n      'get',\n      `${this.basePath}/R4/Task`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleAllergyIntoleranceDSTU2 } from '../model/bundleAllergyIntoleranceDSTU2';\nimport { BundleDeviceDSTU2 } from '../model/bundleDeviceDSTU2';\nimport { BundleFamilyMemberHistoryDSTU2 } from '../model/bundleFamilyMemberHistoryDSTU2';\nimport { BundleImmunizationDSTU2 } from '../model/bundleImmunizationDSTU2';\nimport { BundleMedicationDSTU2 } from '../model/bundleMedicationDSTU2';\nimport { BundleMedicationOrderDSTU2 } from '../model/bundleMedicationOrderDSTU2';\nimport { BundleMedicationStatementDSTU2 } from '../model/bundleMedicationStatementDSTU2';\nimport { BundlePatientDSTU2 } from '../model/bundlePatientDSTU2';\nimport { BundlePractitionerDSTU2 } from '../model/bundlePractitionerDSTU2';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchDSTU2Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param patient Reference to a patient resource.\n   * @param subject Reference to a patient resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public allergyIntoleranceSearchDSTU2(\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleAllergyIntoleranceDSTU2>;\n  public allergyIntoleranceSearchDSTU2(\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleAllergyIntoleranceDSTU2>>;\n  public allergyIntoleranceSearchDSTU2(\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleAllergyIntoleranceDSTU2>>;\n  public allergyIntoleranceSearchDSTU2(\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleAllergyIntoleranceDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/AllergyIntolerance`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient &lt;p&gt;Patient is always required.&lt;/p&gt;\n   * @param id A parameter\n   * @param type &lt;p&gt;The type of the device.&lt;/p&gt;\n   * @param udi &lt;p&gt;FDA mandated Unique Device Identifier.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public deviceSearchDSTU2(\n    patient: string,\n    id?: string,\n    type?: string,\n    udi?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleDeviceDSTU2>;\n  public deviceSearchDSTU2(\n    patient: string,\n    id?: string,\n    type?: string,\n    udi?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleDeviceDSTU2>>;\n  public deviceSearchDSTU2(\n    patient: string,\n    id?: string,\n    type?: string,\n    udi?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleDeviceDSTU2>>;\n  public deviceSearchDSTU2(\n    patient: string,\n    id?: string,\n    type?: string,\n    udi?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling deviceSearchDSTU2.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (id !== undefined && id !== null) {\n      queryParameters = queryParameters.set('_id', <any>id);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (type !== undefined && type !== null) {\n      queryParameters = queryParameters.set('type', <any>type);\n    }\n    if (udi !== undefined && udi !== null) {\n      queryParameters = queryParameters.set('udi', <any>udi);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleDeviceDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Device`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient The Patient resource with the associated FamilyMemberHistory.\n   * @param subject The Patient resource with the associated FamilyMemberHistory.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public familyMemberHistorySearchDSTU2(\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleFamilyMemberHistoryDSTU2>;\n  public familyMemberHistorySearchDSTU2(\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleFamilyMemberHistoryDSTU2>>;\n  public familyMemberHistorySearchDSTU2(\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleFamilyMemberHistoryDSTU2>>;\n  public familyMemberHistorySearchDSTU2(\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleFamilyMemberHistoryDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/FamilyMemberHistory`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param date Vaccination administration date.\n   * @param patient Reference to the Patient who was immunized.\n   * @param status &lt;p&gt;Status of the Immunization. Possible values are:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;completed&lt;/li&gt; &lt;li&gt;entered-in-error&lt;/li&gt; &lt;li&gt;in-progress&lt;/li&gt; &lt;li&gt;on-hold&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;If not provided, will default to include only \\&quot;completed\\&quot; and \\&quot;on-hold\\&quot; immunizations.&lt;/p&gt;\n   * @param subject Reference to the Patient who was immunized.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public immunizationSearchDSTU2(\n    date?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleImmunizationDSTU2>;\n  public immunizationSearchDSTU2(\n    date?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleImmunizationDSTU2>>;\n  public immunizationSearchDSTU2(\n    date?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleImmunizationDSTU2>>;\n  public immunizationSearchDSTU2(\n    date?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleImmunizationDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Immunization`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient FHIR ID for a patient to list dispenses for.\n   * @param subject FHIR ID for a patient to list dispenses for.\n   * @param id FHIR ID of the MedicationOrder resource(s). If _id is included in the search, all other parameters are ignored.\n   * @param status By default, active medications are returned. Statuses of completed, on-hold, and stopped can also be specified.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationOrderSearchDSTU2(\n    patient: string,\n    subject: string,\n    id?: string,\n    status?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleMedicationOrderDSTU2>;\n  public medicationOrderSearchDSTU2(\n    patient: string,\n    subject: string,\n    id?: string,\n    status?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleMedicationOrderDSTU2>>;\n  public medicationOrderSearchDSTU2(\n    patient: string,\n    subject: string,\n    id?: string,\n    status?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleMedicationOrderDSTU2>>;\n  public medicationOrderSearchDSTU2(\n    patient: string,\n    subject: string,\n    id?: string,\n    status?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling medicationOrderSearchDSTU2.'\n      );\n    }\n\n    if (subject === null || subject === undefined) {\n      throw new Error(\n        'Required parameter subject was null or undefined when calling medicationOrderSearchDSTU2.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (id !== undefined && id !== null) {\n      queryParameters = queryParameters.set('_id', <any>id);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleMedicationOrderDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/MedicationOrder`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param id &lt;p&gt;The FHIR ID referencing a medication.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationSearchDSTU2(\n    id: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleMedicationDSTU2>;\n  public medicationSearchDSTU2(\n    id: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleMedicationDSTU2>>;\n  public medicationSearchDSTU2(\n    id: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleMedicationDSTU2>>;\n  public medicationSearchDSTU2(\n    id: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (id === null || id === undefined) {\n      throw new Error(\n        'Required parameter id was null or undefined when calling medicationSearchDSTU2.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (id !== undefined && id !== null) {\n      queryParameters = queryParameters.set('_id', <any>id);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleMedicationDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Medication`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient The FHIR resource ID of the linked patient.\n   * @param id The FHIR resource ID of an individual MedicationStatement resource. If specified, other search parameters are ignored.\n   * @param status The status of the order. If a status is not provided in the search, then only medications with an active status are returned. This is to avoid end user confusion and protect patient safety.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationStatementSearchDSTU2(\n    patient: string,\n    id?: string,\n    status?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleMedicationStatementDSTU2>;\n  public medicationStatementSearchDSTU2(\n    patient: string,\n    id?: string,\n    status?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleMedicationStatementDSTU2>>;\n  public medicationStatementSearchDSTU2(\n    patient: string,\n    id?: string,\n    status?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleMedicationStatementDSTU2>>;\n  public medicationStatementSearchDSTU2(\n    patient: string,\n    id?: string,\n    status?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling medicationStatementSearchDSTU2.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (id !== undefined && id !== null) {\n      queryParameters = queryParameters.set('_id', <any>id);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleMedicationStatementDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/MedicationStatement`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param id The Patient&#x27;s FHIR ID.\n   * @param address Addresses for the patient.\n   * @param birthdate The patient&#x27;s date of birth in the format YYYY-MM-DD.\n   * @param family The patient&#x27;s family (last) name.\n   * @param gender The patient&#x27;s legal sex.\n   * @param given The patient&#x27;s given name. May include first and middle names.\n   * @param identifier Identifiers and assigning authorities associated with a patient. These are of the format &amp;lt;OID&amp;gt;|&amp;lt;value&amp;gt;.\n   * @param telecom Telephone numbers and email addresses for the patient, along with their use (i.e. home, work, etc.)\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public patientSearchDSTU2(\n    id?: string,\n    address?: string,\n    birthdate?: string,\n    family?: string,\n    gender?: string,\n    given?: string,\n    identifier?: string,\n    telecom?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundlePatientDSTU2>;\n  public patientSearchDSTU2(\n    id?: string,\n    address?: string,\n    birthdate?: string,\n    family?: string,\n    gender?: string,\n    given?: string,\n    identifier?: string,\n    telecom?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundlePatientDSTU2>>;\n  public patientSearchDSTU2(\n    id?: string,\n    address?: string,\n    birthdate?: string,\n    family?: string,\n    gender?: string,\n    given?: string,\n    identifier?: string,\n    telecom?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundlePatientDSTU2>>;\n  public patientSearchDSTU2(\n    id?: string,\n    address?: string,\n    birthdate?: string,\n    family?: string,\n    gender?: string,\n    given?: string,\n    identifier?: string,\n    telecom?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (id !== undefined && id !== null) {\n      queryParameters = queryParameters.set('_id', <any>id);\n    }\n    if (address !== undefined && address !== null) {\n      queryParameters = queryParameters.set('address', <any>address);\n    }\n    if (birthdate !== undefined && birthdate !== null) {\n      queryParameters = queryParameters.set('birthdate', <any>birthdate);\n    }\n    if (family !== undefined && family !== null) {\n      queryParameters = queryParameters.set('family', <any>family);\n    }\n    if (gender !== undefined && gender !== null) {\n      queryParameters = queryParameters.set('gender', <any>gender);\n    }\n    if (given !== undefined && given !== null) {\n      queryParameters = queryParameters.set('given', <any>given);\n    }\n    if (identifier !== undefined && identifier !== null) {\n      queryParameters = queryParameters.set('identifier', <any>identifier);\n    }\n    if (telecom !== undefined && telecom !== null) {\n      queryParameters = queryParameters.set('telecom', <any>telecom);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundlePatientDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Patient`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param address Search for Practitioner resources by any part of an address, such as street or city, where a practitioner can be found.\n   * @param addressCity Search for Practitioner resources using the city portion of the address at which the practitioner can be found. This parameter must be used with the address_postalcode parameter.\n   * @param addressPostalcode Search for Practitioner resources using the postal code portion of the address at which the practitioner can be found.\n   * @param addressState Search for Practitioner resources using the state portion of the address at which the practitioner can be found.\n   * @param family &lt;p&gt;Search for Practitioner resources by family (last) name. Family name searching supports both exact and \\&quot;sounds like\\&quot; matches.&lt;/p&gt;  &lt;p&gt;Either Family or Specialty is required for a search to succeed.&lt;/p&gt;\n   * @param gender Search for Practitioner resources using the following gender codes: \\&quot;female\\&quot;, \\&quot;male\\&quot;, or \\&quot;unknown\\&quot;.\n   * @param given Search for Practitioner resources by given (first) name. Given name searching supports both exact and \\&quot;sounds like\\&quot; matches.\n   * @param specialty &lt;p&gt;Search for Practitioner resources by specialty in the format [code system]|[code].&lt;/p&gt;  &lt;p&gt;Either Family or Specialty is required for a search to succeed.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public practitionerSearchDSTU2(\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    family?: string,\n    gender?: string,\n    given?: string,\n    specialty?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundlePractitionerDSTU2>;\n  public practitionerSearchDSTU2(\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    family?: string,\n    gender?: string,\n    given?: string,\n    specialty?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundlePractitionerDSTU2>>;\n  public practitionerSearchDSTU2(\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    family?: string,\n    gender?: string,\n    given?: string,\n    specialty?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundlePractitionerDSTU2>>;\n  public practitionerSearchDSTU2(\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    family?: string,\n    gender?: string,\n    given?: string,\n    specialty?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (address !== undefined && address !== null) {\n      queryParameters = queryParameters.set('address', <any>address);\n    }\n    if (addressCity !== undefined && addressCity !== null) {\n      queryParameters = queryParameters.set('address_city', <any>addressCity);\n    }\n    if (addressPostalcode !== undefined && addressPostalcode !== null) {\n      queryParameters = queryParameters.set(\n        'address_postalcode',\n        <any>addressPostalcode\n      );\n    }\n    if (addressState !== undefined && addressState !== null) {\n      queryParameters = queryParameters.set('address_state', <any>addressState);\n    }\n    if (family !== undefined && family !== null) {\n      queryParameters = queryParameters.set('family', <any>family);\n    }\n    if (gender !== undefined && gender !== null) {\n      queryParameters = queryParameters.set('gender', <any>gender);\n    }\n    if (given !== undefined && given !== null) {\n      queryParameters = queryParameters.set('given', <any>given);\n    }\n    if (specialty !== undefined && specialty !== null) {\n      queryParameters = queryParameters.set('specialty', <any>specialty);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundlePractitionerDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Practitioner`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleConsentSTU3 } from '../model/bundleConsentSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchDocumentSTU3Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param category &lt;p&gt;The type of consent document. This value follows the specification of the FHIR ConsentCategoryCodes (consent-category) value set, which includes LOINC codes and other identifiers. Additional values can be mapped by Epic organizations if desired.&lt;/p&gt; &lt;p&gt;Supported consent categories include:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;59284-0 (Consent Document)&lt;/li&gt; &lt;li&gt;64292-6 (Release of information Consent Document)&lt;/li&gt; &lt;li&gt;84095-9 (Do not resuscitate)&lt;/li&gt; &lt;li&gt;59284-0 (Clinical Consent)&lt;/li&gt; &lt;li&gt;64293-4 (Procedure Consent Document)&lt;/li&gt; &lt;li&gt;61359-6 (Anesthesia Consent Document)&lt;/li&gt; &lt;li&gt;61358-8 (Surgical operation Consent Document)&lt;/li&gt; &lt;li&gt;52027-0 (Abortion Consent Document)&lt;/li&gt; &lt;li&gt;52029-6 (Sterilization Consent Document)&lt;/li&gt; &lt;li&gt;64300-7 (Organ donation Consent Document)&lt;/li&gt; &lt;li&gt;83930-8 (Research Consent Document)&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;This API also supports SNOMED code 11341000146107-Advance Directive as a category.&lt;/p&gt;\n   * @param patient FHIR ID for the Patient the consent applies to.\n   * @param status &lt;p&gt;The state of the consent. This value follows the specification of the FHIR ConsentState value set. The following values have default out-of-the-box support in Epic. Additional statuses can be mapped by Epic organizations if desired.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;draft&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Corresponds to Epic value 11-Not Received&lt;/li&gt; &lt;/ul&gt; &lt;li&gt;active&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Corresponds to Epic values 10-Received and 20-Accepted&lt;/li&gt; &lt;/ul&gt; &lt;li&gt;rejected&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Corresponds to Epic value 1-Unknown&lt;/li&gt; &lt;/ul&gt; &lt;li&gt;entered-in-error&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Corresponds to Epic value 35-Error&lt;/li&gt; &lt;/ul&gt; &lt;li&gt;inactive&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Does not correspond to any Epic value by default&lt;/li&gt; &lt;/ul&gt; &lt;li&gt;proposed&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Does not correspond to any Epic value by default&lt;/li&gt; &lt;/ul&gt; &lt;/ul&gt; &lt;p&gt;Consent documents with no status specified in Epic are returned when searching without a status parameter&lt;/p&gt;\n   * @param subject FHIR ID for the Patient the consent applies to.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public consentSearchDocumentSTU3(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleConsentSTU3>;\n  public consentSearchDocumentSTU3(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleConsentSTU3>>;\n  public consentSearchDocumentSTU3(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleConsentSTU3>>;\n  public consentSearchDocumentSTU3(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleConsentSTU3>(\n      'get',\n      `${this.basePath}/STU3/Consent`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleConditionSTU3 } from '../model/bundleConditionSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchEncounterDiagnosisProblemsSTU3Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param category This is \\&quot;problem-list-item\\&quot;, \\&quot;encounter-diagnosis\\&quot;, or \\&quot;health-concern\\&quot;. The default is to return problem list conditions.\n   * @param clinicalStatus &lt;p&gt;Status of the condition&lt;/p&gt; &lt;table class&#x3D;\\&quot;table table-hover\\&quot;&gt; &lt;tr&gt; &lt;th&gt;FHIR Status&lt;/th&gt; &lt;th&gt;Epic Status&lt;/th&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;active&lt;/td&gt; &lt;td&gt;active conditions&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;resolved&lt;/td&gt; &lt;td&gt; resolved conditions&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;inactive&lt;/td&gt; &lt;td&gt;deleted conditions&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;p&gt;If no status is specified all active (confirmed) conditions will be returned. &lt;/p&gt; &lt;p&gt;*Note: Any FHIR Status not listed in the above table is not returned.&lt;/p&gt;\n   * @param encounter A reference to an Encounter resource that the diagnosis is asserted. If not provided, only problem list conditions will be returned.\n   * @param patient The Patient FHIR resource ID.\n   * @param subject Subject of the Condition.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public conditionSearchEncounterDiagnosisProblemsSTU3(\n    category?: string,\n    clinicalStatus?: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleConditionSTU3>;\n  public conditionSearchEncounterDiagnosisProblemsSTU3(\n    category?: string,\n    clinicalStatus?: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleConditionSTU3>>;\n  public conditionSearchEncounterDiagnosisProblemsSTU3(\n    category?: string,\n    clinicalStatus?: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleConditionSTU3>>;\n  public conditionSearchEncounterDiagnosisProblemsSTU3(\n    category?: string,\n    clinicalStatus?: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (clinicalStatus !== undefined && clinicalStatus !== null) {\n      queryParameters = queryParameters.set(\n        'clinical-status',\n        <any>clinicalStatus\n      );\n    }\n    if (encounter !== undefined && encounter !== null) {\n      queryParameters = queryParameters.set('encounter', <any>encounter);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleConditionSTU3>(\n      'get',\n      `${this.basePath}/STU3/Condition`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleCarePlanDSTU2 } from '../model/bundleCarePlanDSTU2';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchEncounterLevelLongitudinalDSTU2Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param id A parameter\n   * @param category &lt;p&gt;Further refine which CarePlan resources are returned by category. There are two supported categories:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;38717003 returns only the Longitudinal care plan.&lt;/li&gt; &lt;li&gt;734163000 returns encounter-level care plans.&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;If no category is specified, the web service returns only the Longitudinal care plan.&lt;/p&gt;\n   * @param patient The reference to a patient resource.\n   * @param subject The reference to a patient resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public carePlanSearchEncounterLevelLongitudinalDSTU2(\n    id?: string,\n    category?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleCarePlanDSTU2>;\n  public carePlanSearchEncounterLevelLongitudinalDSTU2(\n    id?: string,\n    category?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleCarePlanDSTU2>>;\n  public carePlanSearchEncounterLevelLongitudinalDSTU2(\n    id?: string,\n    category?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleCarePlanDSTU2>>;\n  public carePlanSearchEncounterLevelLongitudinalDSTU2(\n    id?: string,\n    category?: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (id !== undefined && id !== null) {\n      queryParameters = queryParameters.set('_id', <any>id);\n    }\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleCarePlanDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/CarePlan`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleDocumentReferenceDSTU2 } from '../model/bundleDocumentReferenceDSTU2';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchGeneratedCCDADSTU2Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param id Search for DocumentReference resources using one or more server IDs (equivalent to one or more Get /DocumentReference/{ID} requests). If _id is included in your search, all other parameters are ignored.\n   * @param _class Refine a search for DocumentReference resources by passing a LOINC code for document class (CCD and encounter supported). The default LOINC code for CCD is 34133-9 - Summarization of Episode Note. The default LOINC code for Encounter is 11506-3 - Subsequent Evaluation Note.\n   * @param patient Search for DocumentReference resources for a specified patient ID. You can use \\&quot;patient\\&quot; or \\&quot;subject\\&quot; equivalently, but they cannot be used at the same time for different references.\n   * @param period Refine a search for DocumentReference resources by specifying a date or date range for the DocumentReference content. Enter dates in ISO 8601 format (YYYY[-MM[-DD[THH:MM[:SS][TZ]]]]). Local server time is assumed if time zone information is not included. Common FHIR operators such as gt, lt, ge, le, &#x3D;, and ap are supported. When no period is specified, a customer setting is used to determine how far to look back. There is also a setting capping lookback. Another setting can limit what encounter types are returned. Encounters without clinical data will not be returned.\n   * @param subject Search for DocumentReference resources for a specified patient ID. You can use \\&quot;patient\\&quot; or \\&quot;subject\\&quot; equivalently, but they cannot be used at the same time for different references.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public documentReferenceSearchGeneratedCCDADSTU2(\n    id?: string,\n    _class?: string,\n    patient?: string,\n    period?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleDocumentReferenceDSTU2>;\n  public documentReferenceSearchGeneratedCCDADSTU2(\n    id?: string,\n    _class?: string,\n    patient?: string,\n    period?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleDocumentReferenceDSTU2>>;\n  public documentReferenceSearchGeneratedCCDADSTU2(\n    id?: string,\n    _class?: string,\n    patient?: string,\n    period?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleDocumentReferenceDSTU2>>;\n  public documentReferenceSearchGeneratedCCDADSTU2(\n    id?: string,\n    _class?: string,\n    patient?: string,\n    period?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (id !== undefined && id !== null) {\n      queryParameters = queryParameters.set('_id', <any>id);\n    }\n    if (_class !== undefined && _class !== null) {\n      queryParameters = queryParameters.set('class', <any>_class);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (period !== undefined && period !== null) {\n      queryParameters = queryParameters.set('period', <any>period);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleDocumentReferenceDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/DocumentReference`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleDeviceR4 } from '../model/bundleDeviceR4';\nimport { BundleDeviceUseStatementR4 } from '../model/bundleDeviceUseStatementR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchImplantsR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param patient &lt;p&gt;Patient identifier for the patient to whom the device is affixed.&lt;/p&gt; &lt;p&gt;This property is always required by Epic.&lt;/p&gt;\n   * @param deviceName &lt;p&gt;A string that may match the device UDI name.&lt;/p&gt;\n   * @param manufacturer &lt;p&gt;Device manufacturer.&lt;/p&gt;\n   * @param model &lt;p&gt;Device model.&lt;/p&gt;\n   * @param udiCarrier &lt;p&gt;The UDI barcode string either in HRF format or AIDC format.&lt;/p&gt;\n   * @param udiDi &lt;p&gt;UDI device identifier.&lt;/p&gt; &lt;p&gt;Under FDA regulations, all medical devices are required to include a Unique Device Identifier (UDI) on device labels and packages, in both human-readable and barcode format. The FDA also maintains a public database of medical devices and UDI information called the &lt;a href&#x3D;\\&quot;https://accessgudid.nlm.nih.gov/\\&quot;&gt;Global Unique Device Identification Database (GUDID)&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;A Unique Device Identifier (UDI) is a unique numeric or alphanumeric code that is comprised of two components:&lt;/p&gt; &lt;ul&gt;   &lt;li&gt;Device Identifier (DI) (\\&quot;Static UDI\\&quot;) – a mandatory, fixed portion of a UDI that identifies the labeler and specific version or model of a device.&lt;/li&gt;   &lt;li&gt;Production Identifiers (PI) (\\&quot;Dynamic UDI\\&quot;) – a conditional, variable portion of a UDI that identifies one or more of the following:&lt;/li&gt;   &lt;ul&gt;   &lt;li&gt;Lot or batch number within which a device was manufactured&lt;/li&gt;   &lt;li&gt;Serial number of a specific device&lt;/li&gt;   &lt;li&gt;Expiration date of a specific device&lt;/li&gt;   &lt;li&gt;Production date of a specific device&lt;/li&gt;   &lt;li&gt;Distinct identification code for a human cell, tissue, or cellular- and tissue-based product&lt;/li&gt; &lt;/ul&gt; &lt;/ul&gt; &lt;p&gt;When documenting a UDI for an implant in OpTime, you will need to use an identifier that is in a valid format for the selected issuer. Here are some example UDIs you can use for testing:&lt;/p&gt; &lt;table class&#x3D;\\&quot;table table-hover\\&quot;&gt; &lt;tr&gt;   &lt;th&gt;UDI Type / Issuer&lt;/th&gt;   &lt;th&gt;Example Device ID&lt;/th&gt; &lt;/tr&gt; &lt;tr&gt;   &lt;td&gt;ICCBBA&lt;/td&gt;   &lt;td&gt;W4184228005T0473&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt;   &lt;td&gt;HIBC&lt;/td&gt;   &lt;td&gt;MDLXMAG120200&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt;   &lt;td&gt;GS1&lt;/td&gt;   &lt;td&gt;00822409025305&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public deviceSearchImplantsR4(\n    patient: string,\n    deviceName?: string,\n    manufacturer?: string,\n    model?: string,\n    udiCarrier?: string,\n    udiDi?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleDeviceR4>;\n  public deviceSearchImplantsR4(\n    patient: string,\n    deviceName?: string,\n    manufacturer?: string,\n    model?: string,\n    udiCarrier?: string,\n    udiDi?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleDeviceR4>>;\n  public deviceSearchImplantsR4(\n    patient: string,\n    deviceName?: string,\n    manufacturer?: string,\n    model?: string,\n    udiCarrier?: string,\n    udiDi?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleDeviceR4>>;\n  public deviceSearchImplantsR4(\n    patient: string,\n    deviceName?: string,\n    manufacturer?: string,\n    model?: string,\n    udiCarrier?: string,\n    udiDi?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling deviceSearchImplantsR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (deviceName !== undefined && deviceName !== null) {\n      queryParameters = queryParameters.set('device-name', <any>deviceName);\n    }\n    if (manufacturer !== undefined && manufacturer !== null) {\n      queryParameters = queryParameters.set('manufacturer', <any>manufacturer);\n    }\n    if (model !== undefined && model !== null) {\n      queryParameters = queryParameters.set('model', <any>model);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (udiCarrier !== undefined && udiCarrier !== null) {\n      queryParameters = queryParameters.set('udi-carrier', <any>udiCarrier);\n    }\n    if (udiDi !== undefined && udiDi !== null) {\n      queryParameters = queryParameters.set('udi-di', <any>udiDi);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleDeviceR4>(\n      'get',\n      `${this.basePath}/R4/Device`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient A parameter\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public deviceUseStatementSearchImplantsR4(\n    patient: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleDeviceUseStatementR4>;\n  public deviceUseStatementSearchImplantsR4(\n    patient: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleDeviceUseStatementR4>>;\n  public deviceUseStatementSearchImplantsR4(\n    patient: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleDeviceUseStatementR4>>;\n  public deviceUseStatementSearchImplantsR4(\n    patient: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling deviceUseStatementSearchImplantsR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleDeviceUseStatementR4>(\n      'get',\n      `${this.basePath}/R4/DeviceUseStatement`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleDeviceSTU3 } from '../model/bundleDeviceSTU3';\nimport { BundleDeviceUseStatementSTU3 } from '../model/bundleDeviceUseStatementSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchImplantsandExternalDevicesSTU3Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param patient &lt;p&gt;Patient identifier for the patient to whom the device is affixed.&lt;/p&gt;\n   * @param deviceName &lt;p&gt;A string that may match the device UDI name.&lt;/p&gt;\n   * @param manufacturer &lt;p&gt;Device manufacturer.&lt;/p&gt;\n   * @param model &lt;p&gt;Device model.&lt;/p&gt;\n   * @param udiCarrier &lt;p&gt;The UDI barcode string either in HRF format or AIDC format.&lt;/p&gt;\n   * @param udiDi &lt;p&gt;UDI device identifier.&lt;/p&gt; &lt;p&gt;Under FDA regulations, all medical devices are required to include a Unique Device Identifier (UDI) on device labels and packages, in both human-readable and barcode format. The FDA also maintains a public database of medical devices and UDI information called the &lt;a href&#x3D;\\&quot;https://accessgudid.nlm.nih.gov/\\&quot;&gt;Global Unique Device Identification Database (GUDID)&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;A Unique Device Identifier (UDI) is a unique numeric or alphanumeric code that is comprised of two components:&lt;/p&gt; &lt;ul&gt;   &lt;li&gt;Device Identifier (DI) (\\&quot;Static UDI\\&quot;) – a mandatory, fixed portion of a UDI that identifiers the labeler and specific version or model of a device.&lt;/li&gt;   &lt;li&gt;Production Identifiers (PI) (\\&quot;Dynamic UDI\\&quot;) – a conditional, variable portion of a UDI that identifies one or more of the following:&lt;/li&gt;   &lt;ul&gt;   &lt;li&gt;Lot or batch number within which a device was manufactured&lt;/li&gt;   &lt;li&gt;Serial number of a specific device&lt;/li&gt;   &lt;li&gt;Expiration date of a specific device&lt;/li&gt;   &lt;li&gt;Production date of a specific device&lt;/li&gt;   &lt;li&gt;Distinct identification code for a human cell, tissue, or cellular- and tissue-based product&lt;/li&gt; &lt;/ul&gt; &lt;/ul&gt; &lt;p&gt;When documenting a UDI for an implant in OpTime, you will need to use an identifier that is in a valid format for the selected issuer. Here are some example UDIs you can use for testing:&lt;/p&gt; &lt;table class&#x3D;\\&quot;table table-hover\\&quot;&gt; &lt;tr&gt;   &lt;th&gt;UDI Type / Issuer&lt;/th&gt;   &lt;th&gt;Example Device ID&lt;/th&gt; &lt;/tr&gt; &lt;tr&gt;   &lt;td&gt;ICCBBA&lt;/td&gt;   &lt;td&gt;W4184228005T0473&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt;   &lt;td&gt;HIBC&lt;/td&gt;   &lt;td&gt;MDLXMAG120200&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt;   &lt;td&gt;GS1&lt;/td&gt;   &lt;td&gt;00822409025305&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public deviceSearchImplantsandExternalDevicesSTU3(\n    patient: string,\n    deviceName?: string,\n    manufacturer?: string,\n    model?: string,\n    udiCarrier?: string,\n    udiDi?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleDeviceSTU3>;\n  public deviceSearchImplantsandExternalDevicesSTU3(\n    patient: string,\n    deviceName?: string,\n    manufacturer?: string,\n    model?: string,\n    udiCarrier?: string,\n    udiDi?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleDeviceSTU3>>;\n  public deviceSearchImplantsandExternalDevicesSTU3(\n    patient: string,\n    deviceName?: string,\n    manufacturer?: string,\n    model?: string,\n    udiCarrier?: string,\n    udiDi?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleDeviceSTU3>>;\n  public deviceSearchImplantsandExternalDevicesSTU3(\n    patient: string,\n    deviceName?: string,\n    manufacturer?: string,\n    model?: string,\n    udiCarrier?: string,\n    udiDi?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling deviceSearchImplantsandExternalDevicesSTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (deviceName !== undefined && deviceName !== null) {\n      queryParameters = queryParameters.set('device-name', <any>deviceName);\n    }\n    if (manufacturer !== undefined && manufacturer !== null) {\n      queryParameters = queryParameters.set('manufacturer', <any>manufacturer);\n    }\n    if (model !== undefined && model !== null) {\n      queryParameters = queryParameters.set('model', <any>model);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (udiCarrier !== undefined && udiCarrier !== null) {\n      queryParameters = queryParameters.set('udi-carrier', <any>udiCarrier);\n    }\n    if (udiDi !== undefined && udiDi !== null) {\n      queryParameters = queryParameters.set('udi-di', <any>udiDi);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleDeviceSTU3>(\n      'get',\n      `${this.basePath}/STU3/Device`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient Patient identifier for the patient using the device.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public deviceUseStatementSearchImplantsandExternalDevicesSTU3(\n    patient: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleDeviceUseStatementSTU3>;\n  public deviceUseStatementSearchImplantsandExternalDevicesSTU3(\n    patient: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleDeviceUseStatementSTU3>>;\n  public deviceUseStatementSearchImplantsandExternalDevicesSTU3(\n    patient: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleDeviceUseStatementSTU3>>;\n  public deviceUseStatementSearchImplantsandExternalDevicesSTU3(\n    patient: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling deviceUseStatementSearchImplantsandExternalDevicesSTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleDeviceUseStatementSTU3>(\n      'get',\n      `${this.basePath}/STU3/DeviceUseStatement`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleFlagSTU3 } from '../model/bundleFlagSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchInfectionSTU3Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param category Always \\&quot;infection\\&quot; for this web service.\n   * @param patient Reference to a Patient resource the Flag is for.\n   * @param status The status of the infection: active or inactive.\n   * @param subject Reference to a Patient resource the Flag is for.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public flagSearchInfectionSTU3(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleFlagSTU3>;\n  public flagSearchInfectionSTU3(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleFlagSTU3>>;\n  public flagSearchInfectionSTU3(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleFlagSTU3>>;\n  public flagSearchInfectionSTU3(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleFlagSTU3>(\n      'get',\n      `${this.basePath}/STU3/Flag`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleFlagR4 } from '../model/bundleFlagR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchIsolationR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param category Always \\&quot;isolation\\&quot; for this sub-resource.\n   * @param encounter Reference to an Encounter resource associated with an isolation. If no encounter is specified, all isolations are returned.\n   * @param patient Reference to a patient resource the isolation is for.\n   * @param status Status of the isolation. If no status is specified, all isolations are returned.\n   * @param subject Reference to a patient resource the isolation is for.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public flagSearchIsolationR4(\n    category?: string,\n    encounter?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleFlagR4>;\n  public flagSearchIsolationR4(\n    category?: string,\n    encounter?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleFlagR4>>;\n  public flagSearchIsolationR4(\n    category?: string,\n    encounter?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleFlagR4>>;\n  public flagSearchIsolationR4(\n    category?: string,\n    encounter?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (encounter !== undefined && encounter !== null) {\n      queryParameters = queryParameters.set('encounter', <any>encounter);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleFlagR4>(\n      'get',\n      `${this.basePath}/R4/Flag`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleCareTeamR4 } from '../model/bundleCareTeamR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchLongitudinalR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param patient Patient FHIR resource ID.\n   * @param status CareTeam status. The only supported value is \\&quot;active\\&quot;.\n   * @param subject Patient FHIR resource ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public careTeamSearchLongitudinalR4(\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleCareTeamR4>;\n  public careTeamSearchLongitudinalR4(\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleCareTeamR4>>;\n  public careTeamSearchLongitudinalR4(\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleCareTeamR4>>;\n  public careTeamSearchLongitudinalR4(\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleCareTeamR4>(\n      'get',\n      `${this.basePath}/R4/CareTeam`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleListR4 } from '../model/bundleListR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchMedicationsR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param code The code representing the type of list to search. Must be \\&quot;medications\\&quot;.\n   * @param encounter Reference to the Encounter resource with which the List is associated.\n   * @param patient The Patient resource with whom the List is associated.\n   * @param subject Reference to the Patient resource with whom the List is associated.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public listSearchMedicationsR4(\n    code?: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleListR4>;\n  public listSearchMedicationsR4(\n    code?: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleListR4>>;\n  public listSearchMedicationsR4(\n    code?: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleListR4>>;\n  public listSearchMedicationsR4(\n    code?: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (code !== undefined && code !== null) {\n      queryParameters = queryParameters.set('code', <any>code);\n    }\n    if (encounter !== undefined && encounter !== null) {\n      queryParameters = queryParameters.set('encounter', <any>encounter);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleListR4>(\n      'get',\n      `${this.basePath}/R4/List`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleRequestGroupR4 } from '../model/bundleRequestGroupR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchOncologyPlanDayR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public requestGroupSearchOncologyPlanDayR4(\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleRequestGroupR4>;\n  public requestGroupSearchOncologyPlanDayR4(\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleRequestGroupR4>>;\n  public requestGroupSearchOncologyPlanDayR4(\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleRequestGroupR4>>;\n  public requestGroupSearchOncologyPlanDayR4(\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleRequestGroupR4>(\n      'get',\n      `${this.basePath}/R4/RequestGroup`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleProcedureDSTU2 } from '../model/bundleProcedureDSTU2';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchOrdersDSTU2Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param date The date or date range the Procedure was performed.\n   * @param patient The Patient FHIR resource ID.\n   * @param subject Subject of the procedure.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public procedureSearchOrdersDSTU2(\n    date: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleProcedureDSTU2>;\n  public procedureSearchOrdersDSTU2(\n    date: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleProcedureDSTU2>>;\n  public procedureSearchOrdersDSTU2(\n    date: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleProcedureDSTU2>>;\n  public procedureSearchOrdersDSTU2(\n    date: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (date === null || date === undefined) {\n      throw new Error(\n        'Required parameter date was null or undefined when calling procedureSearchOrdersDSTU2.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleProcedureDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Procedure`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleMedicationRequestR4 } from '../model/bundleMedicationRequestR4';\nimport { BundleServiceRequestR4 } from '../model/bundleServiceRequestR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchOrdersR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param authoredon This parameter is allowed, but ignored.\n   * @param category &lt;p&gt;The category of medication orders to search for. By default all categories are searched.&lt;/p&gt; Supported categories: &lt;ul&gt; &lt;li&gt;Inpatient&lt;/li&gt; &lt;li&gt;Outpatient (those administered in the clinic - CAMS)&lt;/li&gt; &lt;li&gt;Community (prescriptions)&lt;/li&gt; &lt;/ul&gt;\n   * @param intent Only ‘order’ and ‘plan’ are supported.\n   * @param status &lt;p&gt;The status for medication orders. By default, all statuses are returned.&lt;/p&gt; Supported statuses: &lt;ul&gt; &lt;li&gt;On-hold&lt;/li&gt; &lt;li&gt;Completed&lt;/li&gt; &lt;li&gt;Stopped&lt;/li&gt; &lt;li&gt;Active&lt;/li&gt; &lt;/ul&gt;\n   * @param patient The FHIR patient ID.\n   * @param subject The FHIR patient ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationRequestSearchOrdersR4(\n    authoredon: string,\n    category: string,\n    intent: string,\n    status: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleMedicationRequestR4>;\n  public medicationRequestSearchOrdersR4(\n    authoredon: string,\n    category: string,\n    intent: string,\n    status: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleMedicationRequestR4>>;\n  public medicationRequestSearchOrdersR4(\n    authoredon: string,\n    category: string,\n    intent: string,\n    status: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleMedicationRequestR4>>;\n  public medicationRequestSearchOrdersR4(\n    authoredon: string,\n    category: string,\n    intent: string,\n    status: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (authoredon === null || authoredon === undefined) {\n      throw new Error(\n        'Required parameter authoredon was null or undefined when calling medicationRequestSearchOrdersR4.'\n      );\n    }\n\n    if (category === null || category === undefined) {\n      throw new Error(\n        'Required parameter category was null or undefined when calling medicationRequestSearchOrdersR4.'\n      );\n    }\n\n    if (intent === null || intent === undefined) {\n      throw new Error(\n        'Required parameter intent was null or undefined when calling medicationRequestSearchOrdersR4.'\n      );\n    }\n\n    if (status === null || status === undefined) {\n      throw new Error(\n        'Required parameter status was null or undefined when calling medicationRequestSearchOrdersR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (authoredon !== undefined && authoredon !== null) {\n      queryParameters = queryParameters.set('authoredon', <any>authoredon);\n    }\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (intent !== undefined && intent !== null) {\n      queryParameters = queryParameters.set('intent', <any>intent);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleMedicationRequestR4>(\n      'get',\n      `${this.basePath}/R4/MedicationRequest`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param category &lt;p&gt;Set category to the following token construction: system | code, where:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;system: “http://snomed.info/sct”&lt;/li&gt; &lt;li&gt;code: “307835004”&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;The code SCTID: 307835004 represents the  ‘Referral by service’, in order to find CRRN type of ServiceRequests. Either the patient, subject, or encounter must be provided.&lt;/p&gt;\n   * @param encounter Reference to an Encounter resource the procedure request is in.\n   * @param onlyscannable If “true”,  only scannable orders and procedures are returned in the response. This feature requires a user to have login department context as part of the API request, otherwise error code 59100 is returned.\n   * @param patient Reference to a patient resource for which the request is ordered.\n   * @param requester Reference to a practitioner resource who is the authorizing provider for the procedure request.\n   * @param status &lt;p&gt;The status of the request. Supported values include:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;draft&lt;/li&gt; &lt;li&gt;active&lt;/li&gt; &lt;li&gt;completed&lt;/li&gt; &lt;li&gt;revoked&lt;/li&gt; &lt;li&gt; unknown&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;This service returns all statuses if this element is not specified.&lt;/p&gt;\n   * @param subject Reference to a patient resource for which the request is ordered.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public serviceRequestSearchOrdersR4(\n    category: string,\n    encounter?: string,\n    onlyscannable?: string,\n    patient?: string,\n    requester?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleServiceRequestR4>;\n  public serviceRequestSearchOrdersR4(\n    category: string,\n    encounter?: string,\n    onlyscannable?: string,\n    patient?: string,\n    requester?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleServiceRequestR4>>;\n  public serviceRequestSearchOrdersR4(\n    category: string,\n    encounter?: string,\n    onlyscannable?: string,\n    patient?: string,\n    requester?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleServiceRequestR4>>;\n  public serviceRequestSearchOrdersR4(\n    category: string,\n    encounter?: string,\n    onlyscannable?: string,\n    patient?: string,\n    requester?: string,\n    status?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (category === null || category === undefined) {\n      throw new Error(\n        'Required parameter category was null or undefined when calling serviceRequestSearchOrdersR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (encounter !== undefined && encounter !== null) {\n      queryParameters = queryParameters.set('encounter', <any>encounter);\n    }\n    if (onlyscannable !== undefined && onlyscannable !== null) {\n      queryParameters = queryParameters.set(\n        'onlyscannable',\n        <any>onlyscannable\n      );\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (requester !== undefined && requester !== null) {\n      queryParameters = queryParameters.set('requester', <any>requester);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleServiceRequestR4>(\n      'get',\n      `${this.basePath}/R4/ServiceRequest`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleMedicationRequestSTU3 } from '../model/bundleMedicationRequestSTU3';\nimport { BundleProcedureRequestSTU3 } from '../model/bundleProcedureRequestSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchOrdersSTU3Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param authoredon This parameter is allowed, but ignored.\n   * @param category &lt;p&gt;The category of medication orders to search for. By default all categories are searched.&lt;/p&gt; &lt;br&gt; &lt;p&gt;Supported categories:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;inpatient&lt;/li&gt; &lt;li&gt;outpatient&lt;/li&gt; &lt;li&gt;community&lt;/li&gt; &lt;li&gt;patientspecified&lt;/li&gt;&lt;/ul&gt;\n   * @param date A parameter\n   * @param patient The FHIR Patient ID. Either this element or Subject is required.\n   * @param status &lt;p&gt;The status for medication orders. By default, active is assumed. Active must be present in all searches (i.e. you cannot search for just completed meds).&lt;/p&gt; &lt;br&gt; &lt;p&gt;Supported statuses:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;On-hold&lt;/li&gt; &lt;li&gt;Completed&lt;/li&gt; &lt;li&gt;Stopped&lt;/li&gt; &lt;li&gt;Active&lt;/li&gt;&lt;/ul&gt;\n   * @param subject The FHIR patient ID. Either this element or Patient is required.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationRequestSearchOrdersSTU3(\n    authoredon: string,\n    category: string,\n    date: string,\n    patient: string,\n    status: string,\n    subject: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleMedicationRequestSTU3>;\n  public medicationRequestSearchOrdersSTU3(\n    authoredon: string,\n    category: string,\n    date: string,\n    patient: string,\n    status: string,\n    subject: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleMedicationRequestSTU3>>;\n  public medicationRequestSearchOrdersSTU3(\n    authoredon: string,\n    category: string,\n    date: string,\n    patient: string,\n    status: string,\n    subject: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleMedicationRequestSTU3>>;\n  public medicationRequestSearchOrdersSTU3(\n    authoredon: string,\n    category: string,\n    date: string,\n    patient: string,\n    status: string,\n    subject: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (authoredon === null || authoredon === undefined) {\n      throw new Error(\n        'Required parameter authoredon was null or undefined when calling medicationRequestSearchOrdersSTU3.'\n      );\n    }\n\n    if (category === null || category === undefined) {\n      throw new Error(\n        'Required parameter category was null or undefined when calling medicationRequestSearchOrdersSTU3.'\n      );\n    }\n\n    if (date === null || date === undefined) {\n      throw new Error(\n        'Required parameter date was null or undefined when calling medicationRequestSearchOrdersSTU3.'\n      );\n    }\n\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling medicationRequestSearchOrdersSTU3.'\n      );\n    }\n\n    if (status === null || status === undefined) {\n      throw new Error(\n        'Required parameter status was null or undefined when calling medicationRequestSearchOrdersSTU3.'\n      );\n    }\n\n    if (subject === null || subject === undefined) {\n      throw new Error(\n        'Required parameter subject was null or undefined when calling medicationRequestSearchOrdersSTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (authoredon !== undefined && authoredon !== null) {\n      queryParameters = queryParameters.set('authoredon', <any>authoredon);\n    }\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleMedicationRequestSTU3>(\n      'get',\n      `${this.basePath}/STU3/MedicationRequest`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param requester Reference to a practitioner resource who is the authorizing provider for the procedure request. Default is all.\n   * @param status The status code to filter the search. The full list of potential values can be found &lt;a href&#x3D;\\&quot;http://hl7.org/fhir/stu3/valueset-request-status.html\\&quot;&gt;here&lt;/a&gt;. The default is to return active ProcedureRequests.\n   * @param encounter The patient&#x27;s encounter FHIR ID.\n   * @param patient The patient FHIR ID.\n   * @param subject A parameter\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public procedureRequestSearchOrdersSTU3(\n    requester: string,\n    status: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleProcedureRequestSTU3>;\n  public procedureRequestSearchOrdersSTU3(\n    requester: string,\n    status: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleProcedureRequestSTU3>>;\n  public procedureRequestSearchOrdersSTU3(\n    requester: string,\n    status: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleProcedureRequestSTU3>>;\n  public procedureRequestSearchOrdersSTU3(\n    requester: string,\n    status: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (requester === null || requester === undefined) {\n      throw new Error(\n        'Required parameter requester was null or undefined when calling procedureRequestSearchOrdersSTU3.'\n      );\n    }\n\n    if (status === null || status === undefined) {\n      throw new Error(\n        'Required parameter status was null or undefined when calling procedureRequestSearchOrdersSTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (encounter !== undefined && encounter !== null) {\n      queryParameters = queryParameters.set('encounter', <any>encounter);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (requester !== undefined && requester !== null) {\n      queryParameters = queryParameters.set('requester', <any>requester);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleProcedureRequestSTU3>(\n      'get',\n      `${this.basePath}/STU3/ProcedureRequest`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleProcedureSTU3 } from '../model/bundleProcedureSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchOrdersSurgeriesSTU3Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param category A code that classifies the procedure. The following SNOMED codes are acceptable values: 387713003 (Surgical procedure), 103693007 (Diagnostic procedure)\n   * @param date Date or period that the procedure was performed, using the FHIR date parameter format.\n   * @param patient The Patient FHIR resource ID.\n   * @param subject Subject of the procedure.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public procedureSearchOrdersSurgeriesSTU3(\n    category?: string,\n    date?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleProcedureSTU3>;\n  public procedureSearchOrdersSurgeriesSTU3(\n    category?: string,\n    date?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleProcedureSTU3>>;\n  public procedureSearchOrdersSurgeriesSTU3(\n    category?: string,\n    date?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleProcedureSTU3>>;\n  public procedureSearchOrdersSurgeriesSTU3(\n    category?: string,\n    date?: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleProcedureSTU3>(\n      'get',\n      `${this.basePath}/STU3/Procedure`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleGoalDSTU2 } from '../model/bundleGoalDSTU2';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchPatientDSTU2Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param category Based on  the category number by default, with Title and then Synonym as backups. Can use SNOMED if OID is specified and a mapping table has been built by the Epic community member.\n   * @param patient Associated Patient FHIR Resource ID.\n   * @param status &lt;p&gt;The current status of the goal. The following values are supported:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;in-progress,&lt;/li&gt; &lt;li&gt;achieved&lt;/li&gt; &lt;li&gt;cancelled&lt;/li&gt; &lt;/ul&gt;\n   * @param subject Associated Patient FHIR Resource ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public goalSearchPatientDSTU2(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleGoalDSTU2>;\n  public goalSearchPatientDSTU2(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleGoalDSTU2>>;\n  public goalSearchPatientDSTU2(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleGoalDSTU2>>;\n  public goalSearchPatientDSTU2(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleGoalDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Goal`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleQuestionnaireR4 } from '../model/bundleQuestionnaireR4';\nimport { BundleQuestionnaireResponseR4 } from '../model/bundleQuestionnaireResponseR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchPatientEnteredQuestionnairesR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param patient FHIR Patient ID. All patient-entered questionnaire responses from the specified patient will be returned. Multiple patients cannot be referenced in the search request.\n   * @param encounter FHIR Encounter IDs. If provided, the search returns only those patient-entered questionnaire responses associated with the specified encounter(s).\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public questionnaireResponseSearchPatientEnteredQuestionnairesR4(\n    patient: string,\n    encounter?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleQuestionnaireResponseR4>;\n  public questionnaireResponseSearchPatientEnteredQuestionnairesR4(\n    patient: string,\n    encounter?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleQuestionnaireResponseR4>>;\n  public questionnaireResponseSearchPatientEnteredQuestionnairesR4(\n    patient: string,\n    encounter?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleQuestionnaireResponseR4>>;\n  public questionnaireResponseSearchPatientEnteredQuestionnairesR4(\n    patient: string,\n    encounter?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling questionnaireResponseSearchPatientEnteredQuestionnairesR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (encounter !== undefined && encounter !== null) {\n      queryParameters = queryParameters.set('encounter', <any>encounter);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleQuestionnaireResponseR4>(\n      'get',\n      `${this.basePath}/R4/QuestionnaireResponse`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public questionnaireSearchPatientEnteredQuestionnairesR4(\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleQuestionnaireR4>;\n  public questionnaireSearchPatientEnteredQuestionnairesR4(\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleQuestionnaireR4>>;\n  public questionnaireSearchPatientEnteredQuestionnairesR4(\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleQuestionnaireR4>>;\n  public questionnaireSearchPatientEnteredQuestionnairesR4(\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleQuestionnaireR4>(\n      'get',\n      `${this.basePath}/R4/Questionnaire`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleGoalR4 } from '../model/bundleGoalR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchPatientR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param category Based on  the category number by default, with Title and then Synonym as backups. Can use SNOMED if OID is specified and a mapping table has been built by the Epic community member. Ex: treatment, dietary, or behavioral.\n   * @param lifecycleStatus &lt;p&gt;The current status of the goal.  Previously called \\&quot;status\\&quot; in STU3. The following values are supported:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;active&lt;/li&gt; &lt;li&gt;completed&lt;/li&gt; &lt;li&gt;cancelled&lt;/li&gt; &lt;/ul&gt;\n   * @param patient Associated Patient FHIR Resource ID.\n   * @param subject Associated Patient FHIR Resource ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public goalSearchPatientR4(\n    category?: string,\n    lifecycleStatus?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleGoalR4>;\n  public goalSearchPatientR4(\n    category?: string,\n    lifecycleStatus?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleGoalR4>>;\n  public goalSearchPatientR4(\n    category?: string,\n    lifecycleStatus?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleGoalR4>>;\n  public goalSearchPatientR4(\n    category?: string,\n    lifecycleStatus?: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (lifecycleStatus !== undefined && lifecycleStatus !== null) {\n      queryParameters = queryParameters.set(\n        'lifecycle-status',\n        <any>lifecycleStatus\n      );\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleGoalR4>(\n      'get',\n      `${this.basePath}/R4/Goal`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleGoalSTU3 } from '../model/bundleGoalSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchPatientSTU3Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param category Based on  the category number by default, with Title and then Synonym as backups. Can use SNOMED if OID is specified and a mapping table has been built by the Epic community member. Ex: treatment, dietary, or behavioral.\n   * @param patient Associated Patient FHIR Resource ID.\n   * @param status &lt;p&gt;The current status of the goal. The following values are supported:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;in-progress,&lt;/li&gt; &lt;li&gt;achieved&lt;/li&gt; &lt;li&gt;cancelled&lt;/li&gt; &lt;/ul&gt;\n   * @param subject Associated Patient FHIR Resource ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public goalSearchPatientSTU3(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleGoalSTU3>;\n  public goalSearchPatientSTU3(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleGoalSTU3>>;\n  public goalSearchPatientSTU3(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleGoalSTU3>>;\n  public goalSearchPatientSTU3(\n    category?: string,\n    patient?: string,\n    status?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleGoalSTU3>(\n      'get',\n      `${this.basePath}/STU3/Goal`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleListSTU3 } from '../model/bundleListSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchPatientsWithQuestionnairesDueSTU3Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param code Always set to \\&quot;patientswithquestionnairesduelist\\&quot;\n   * @param date Date by which the questionnaires are due.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public listSearchPatientsWithQuestionnairesDueSTU3(\n    code: string,\n    date: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleListSTU3>;\n  public listSearchPatientsWithQuestionnairesDueSTU3(\n    code: string,\n    date: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleListSTU3>>;\n  public listSearchPatientsWithQuestionnairesDueSTU3(\n    code: string,\n    date: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleListSTU3>>;\n  public listSearchPatientsWithQuestionnairesDueSTU3(\n    code: string,\n    date: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (code === null || code === undefined) {\n      throw new Error(\n        'Required parameter code was null or undefined when calling listSearchPatientsWithQuestionnairesDueSTU3.'\n      );\n    }\n\n    if (date === null || date === undefined) {\n      throw new Error(\n        'Required parameter date was null or undefined when calling listSearchPatientsWithQuestionnairesDueSTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (code !== undefined && code !== null) {\n      queryParameters = queryParameters.set('code', <any>code);\n    }\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleListSTU3>(\n      'get',\n      `${this.basePath}/STU3/List`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleConditionDSTU2 } from '../model/bundleConditionDSTU2';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchProblemsDSTU2Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param category Type of condition – must be “Diagnosis”.\n   * @param clinicalStatus &lt;p&gt;Status of the condition&lt;/p&gt; &lt;table class&#x3D;\\&quot;table table-hover\\&quot;&gt; &lt;tr&gt; &lt;th&gt;FHIR Status&lt;/th&gt; &lt;th&gt;Epic Status&lt;/th&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;active&lt;/td&gt; &lt;td&gt;active conditions&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;resolved&lt;/td&gt; &lt;td&gt; resolved conditions&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;inactive&lt;/td&gt; &lt;td&gt;deleted conditions&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;p&gt;If no status is specified all active (confirmed) conditions will be returned. &lt;/p&gt; &lt;p&gt;*Note: Any FHIR Status not listed in the above table is not returned.&lt;/p&gt;\n   * @param patient The Patient FHIR resource ID.\n   * @param subject Subject of the condition.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public conditionSearchProblemsDSTU2(\n    category?: string,\n    clinicalStatus?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleConditionDSTU2>;\n  public conditionSearchProblemsDSTU2(\n    category?: string,\n    clinicalStatus?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleConditionDSTU2>>;\n  public conditionSearchProblemsDSTU2(\n    category?: string,\n    clinicalStatus?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleConditionDSTU2>>;\n  public conditionSearchProblemsDSTU2(\n    category?: string,\n    clinicalStatus?: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (clinicalStatus !== undefined && clinicalStatus !== null) {\n      queryParameters = queryParameters.set(\n        'clinicalStatus',\n        <any>clinicalStatus\n      );\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleConditionDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Condition`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleCarePlanR4 } from '../model/bundleCarePlanR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchQuestionnairesDueR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param activityDate Date when the questionnaires are due before.\n   * @param category Always set to SNOMED 719091000000102.\n   * @param patient Patient FHIR resource ID for the patient associated with the care plan.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public carePlanSearchQuestionnairesDueR4(\n    activityDate: string,\n    category: string,\n    patient: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleCarePlanR4>;\n  public carePlanSearchQuestionnairesDueR4(\n    activityDate: string,\n    category: string,\n    patient: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleCarePlanR4>>;\n  public carePlanSearchQuestionnairesDueR4(\n    activityDate: string,\n    category: string,\n    patient: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleCarePlanR4>>;\n  public carePlanSearchQuestionnairesDueR4(\n    activityDate: string,\n    category: string,\n    patient: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (activityDate === null || activityDate === undefined) {\n      throw new Error(\n        'Required parameter activityDate was null or undefined when calling carePlanSearchQuestionnairesDueR4.'\n      );\n    }\n\n    if (category === null || category === undefined) {\n      throw new Error(\n        'Required parameter category was null or undefined when calling carePlanSearchQuestionnairesDueR4.'\n      );\n    }\n\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling carePlanSearchQuestionnairesDueR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (activityDate !== undefined && activityDate !== null) {\n      queryParameters = queryParameters.set('activity-date', <any>activityDate);\n    }\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleCarePlanR4>(\n      'get',\n      `${this.basePath}/R4/CarePlan`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleAdverseEventR4 } from '../model/bundleAdverseEventR4';\nimport { BundleAllergyIntoleranceR4 } from '../model/bundleAllergyIntoleranceR4';\nimport { BundleCoverageR4 } from '../model/bundleCoverageR4';\nimport { BundleDeviceRequestR4 } from '../model/bundleDeviceRequestR4';\nimport { BundleEncounterR4 } from '../model/bundleEncounterR4';\nimport { BundleExplanationOfBenefitR4 } from '../model/bundleExplanationOfBenefitR4';\nimport { BundleImmunizationR4 } from '../model/bundleImmunizationR4';\nimport { BundleImmunizationRecommendationR4 } from '../model/bundleImmunizationRecommendationR4';\nimport { BundleLocationR4 } from '../model/bundleLocationR4';\nimport { BundleMedicationR4 } from '../model/bundleMedicationR4';\nimport { BundleNutritionOrderR4 } from '../model/bundleNutritionOrderR4';\nimport { BundleOrganizationR4 } from '../model/bundleOrganizationR4';\nimport { BundlePatientR4 } from '../model/bundlePatientR4';\nimport { BundlePractitionerR4 } from '../model/bundlePractitionerR4';\nimport { BundlePractitionerRoleR4 } from '../model/bundlePractitionerRoleR4';\nimport { BundleResearchStudyR4 } from '../model/bundleResearchStudyR4';\nimport { BundleSpecimenR4 } from '../model/bundleSpecimenR4';\nimport { BundleSubstanceR4 } from '../model/bundleSubstanceR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param study A ResearchStudy FHIR ID.\n   * @param subject A Patient FHIR ID.\n   * @param seriousness &lt;p&gt;Seriousness of the event. Possible values are:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Serious&lt;/li&gt; &lt;li&gt;Non-Serious&lt;/li&gt; &lt;/ul&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public adverseEventSearchR4(\n    study: string,\n    subject: string,\n    seriousness?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleAdverseEventR4>;\n  public adverseEventSearchR4(\n    study: string,\n    subject: string,\n    seriousness?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleAdverseEventR4>>;\n  public adverseEventSearchR4(\n    study: string,\n    subject: string,\n    seriousness?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleAdverseEventR4>>;\n  public adverseEventSearchR4(\n    study: string,\n    subject: string,\n    seriousness?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (study === null || study === undefined) {\n      throw new Error(\n        'Required parameter study was null or undefined when calling adverseEventSearchR4.'\n      );\n    }\n\n    if (subject === null || subject === undefined) {\n      throw new Error(\n        'Required parameter subject was null or undefined when calling adverseEventSearchR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (seriousness !== undefined && seriousness !== null) {\n      queryParameters = queryParameters.set('seriousness', <any>seriousness);\n    }\n    if (study !== undefined && study !== null) {\n      queryParameters = queryParameters.set('study', <any>study);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleAdverseEventR4>(\n      'get',\n      `${this.basePath}/R4/AdverseEvent`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient Reference to a patient resource.\n   * @param clinicalStatus &lt;p&gt;The current status of the allergy. Only \\&quot;active\\&quot; is accepted. &lt;p&gt;Starting in the August 2021 version of Epic, this parameter is no longer required, and if is not specified, both active and inactive/resolved allergies are returned.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public allergyIntoleranceSearchR4(\n    patient: string,\n    clinicalStatus?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleAllergyIntoleranceR4>;\n  public allergyIntoleranceSearchR4(\n    patient: string,\n    clinicalStatus?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleAllergyIntoleranceR4>>;\n  public allergyIntoleranceSearchR4(\n    patient: string,\n    clinicalStatus?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleAllergyIntoleranceR4>>;\n  public allergyIntoleranceSearchR4(\n    patient: string,\n    clinicalStatus?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling allergyIntoleranceSearchR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (clinicalStatus !== undefined && clinicalStatus !== null) {\n      queryParameters = queryParameters.set(\n        'clinical-status',\n        <any>clinicalStatus\n      );\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleAllergyIntoleranceR4>(\n      'get',\n      `${this.basePath}/R4/AllergyIntolerance`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param beneficiary &lt;p&gt;Either the beneficiary or the patient must be specified in the search request. If both are specified, they must match.&lt;/p&gt;\n   * @param patient &lt;p&gt;Either the beneficiary or the patient must be specified in the search request. If both are specified, they must match.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public coverageSearchR4(\n    beneficiary: string,\n    patient: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleCoverageR4>;\n  public coverageSearchR4(\n    beneficiary: string,\n    patient: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleCoverageR4>>;\n  public coverageSearchR4(\n    beneficiary: string,\n    patient: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleCoverageR4>>;\n  public coverageSearchR4(\n    beneficiary: string,\n    patient: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (beneficiary === null || beneficiary === undefined) {\n      throw new Error(\n        'Required parameter beneficiary was null or undefined when calling coverageSearchR4.'\n      );\n    }\n\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling coverageSearchR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (beneficiary !== undefined && beneficiary !== null) {\n      queryParameters = queryParameters.set('beneficiary', <any>beneficiary);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleCoverageR4>(\n      'get',\n      `${this.basePath}/R4/Coverage`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient &lt;p&gt;Patient identifier for the patient who is the target of the request&lt;/p&gt; &lt;p&gt;This property is always required by Epic.&lt;/p&gt;\n   * @param status &lt;p&gt;The status of a request. Can be one of the following:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;active&lt;/li&gt; &lt;li&gt;completed&lt;/li&gt; &lt;li&gt;draft&lt;/li&gt; &lt;li&gt;cancelled&lt;/li&gt; &lt;li&gt;unknown&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;If unspecified, returns requests of all statuses.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public deviceRequestSearchR4(\n    patient: string,\n    status?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleDeviceRequestR4>;\n  public deviceRequestSearchR4(\n    patient: string,\n    status?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleDeviceRequestR4>>;\n  public deviceRequestSearchR4(\n    patient: string,\n    status?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleDeviceRequestR4>>;\n  public deviceRequestSearchR4(\n    patient: string,\n    status?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling deviceRequestSearchR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleDeviceRequestR4>(\n      'get',\n      `${this.basePath}/R4/DeviceRequest`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param _class Classification of patient encounter. For organizations in the Netherlands, this element includes only the ACT encounter code.\n   * @param date A date range that the encounter takes place.\n   * @param identifier &lt;p&gt;Identifiers by which this encounter is known in the format &amp;lt;code system&amp;gt;|&amp;lt;code&amp;gt;.&lt;/p&gt; &lt;p&gt;This search parameter is available starting in the August 2021 version of Epic.&lt;/p&gt;\n   * @param onlyscannable If \\&quot;true\\&quot;, only scannable encounters are returned in the response. This feature requires a user to have login department context as part of the API request, otherwise error code 59100 is returned.\n   * @param patient Reference to a patient resource.\n   * @param subject Reference to a patient resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public encounterSearchR4(\n    _class: string,\n    date: string,\n    identifier: string,\n    onlyscannable: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleEncounterR4>;\n  public encounterSearchR4(\n    _class: string,\n    date: string,\n    identifier: string,\n    onlyscannable: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleEncounterR4>>;\n  public encounterSearchR4(\n    _class: string,\n    date: string,\n    identifier: string,\n    onlyscannable: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleEncounterR4>>;\n  public encounterSearchR4(\n    _class: string,\n    date: string,\n    identifier: string,\n    onlyscannable: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (_class === null || _class === undefined) {\n      throw new Error(\n        'Required parameter _class was null or undefined when calling encounterSearchR4.'\n      );\n    }\n\n    if (date === null || date === undefined) {\n      throw new Error(\n        'Required parameter date was null or undefined when calling encounterSearchR4.'\n      );\n    }\n\n    if (identifier === null || identifier === undefined) {\n      throw new Error(\n        'Required parameter identifier was null or undefined when calling encounterSearchR4.'\n      );\n    }\n\n    if (onlyscannable === null || onlyscannable === undefined) {\n      throw new Error(\n        'Required parameter onlyscannable was null or undefined when calling encounterSearchR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (_class !== undefined && _class !== null) {\n      queryParameters = queryParameters.set('class', <any>_class);\n    }\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n    if (identifier !== undefined && identifier !== null) {\n      queryParameters = queryParameters.set('identifier', <any>identifier);\n    }\n    if (onlyscannable !== undefined && onlyscannable !== null) {\n      queryParameters = queryParameters.set(\n        'onlyscannable',\n        <any>onlyscannable\n      );\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleEncounterR4>(\n      'get',\n      `${this.basePath}/R4/Encounter`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient The patient for whom claims data is being retrieved.\n   * @param created Creation date of the claim.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public explanationOfBenefitSearchR4(\n    patient: string,\n    created?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleExplanationOfBenefitR4>;\n  public explanationOfBenefitSearchR4(\n    patient: string,\n    created?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleExplanationOfBenefitR4>>;\n  public explanationOfBenefitSearchR4(\n    patient: string,\n    created?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleExplanationOfBenefitR4>>;\n  public explanationOfBenefitSearchR4(\n    patient: string,\n    created?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling explanationOfBenefitSearchR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (created !== undefined && created !== null) {\n      queryParameters = queryParameters.set('created', <any>created);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleExplanationOfBenefitR4>(\n      'get',\n      `${this.basePath}/R4/ExplanationOfBenefit`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient The patient associated with the immunization recommendation. Reference to the Patient resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public immunizationRecommendationSearchR4(\n    patient: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleImmunizationRecommendationR4>;\n  public immunizationRecommendationSearchR4(\n    patient: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleImmunizationRecommendationR4>>;\n  public immunizationRecommendationSearchR4(\n    patient: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleImmunizationRecommendationR4>>;\n  public immunizationRecommendationSearchR4(\n    patient: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling immunizationRecommendationSearchR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleImmunizationRecommendationR4>(\n      'get',\n      `${this.basePath}/R4/ImmunizationRecommendation`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient Reference to the Patient who was immunized.\n   * @param date Vaccination administration date.\n   * @param status &lt;p&gt;Status of the Immunization. Possible values are:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;completed&lt;/li&gt; &lt;li&gt;entered-in-error&lt;/li&gt; &lt;li&gt;not-done&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;*Note: incomplete Immunizations are not supported.&lt;/p&gt; &lt;p&gt; If no status is specified, all statuses are returned.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public immunizationSearchR4(\n    patient: string,\n    date?: string,\n    status?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleImmunizationR4>;\n  public immunizationSearchR4(\n    patient: string,\n    date?: string,\n    status?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleImmunizationR4>>;\n  public immunizationSearchR4(\n    patient: string,\n    date?: string,\n    status?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleImmunizationR4>>;\n  public immunizationSearchR4(\n    patient: string,\n    date?: string,\n    status?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling immunizationSearchR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleImmunizationR4>(\n      'get',\n      `${this.basePath}/R4/Immunization`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public locationSearchR4(\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleLocationR4>;\n  public locationSearchR4(\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleLocationR4>>;\n  public locationSearchR4(\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleLocationR4>>;\n  public locationSearchR4(\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleLocationR4>(\n      'get',\n      `${this.basePath}/R4/Location`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationSearchR4(\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleMedicationR4>;\n  public medicationSearchR4(\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleMedicationR4>>;\n  public medicationSearchR4(\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleMedicationR4>>;\n  public medicationSearchR4(\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleMedicationR4>(\n      'get',\n      `${this.basePath}/R4/Medication`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient FHIR identifier for the patient whose nutrition order details are being requested.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public nutritionOrderSearchR4(\n    patient: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleNutritionOrderR4>;\n  public nutritionOrderSearchR4(\n    patient: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleNutritionOrderR4>>;\n  public nutritionOrderSearchR4(\n    patient: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleNutritionOrderR4>>;\n  public nutritionOrderSearchR4(\n    patient: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling nutritionOrderSearchR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleNutritionOrderR4>(\n      'get',\n      `${this.basePath}/R4/NutritionOrder`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public organizationSearchR4(\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleOrganizationR4>;\n  public organizationSearchR4(\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleOrganizationR4>>;\n  public organizationSearchR4(\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleOrganizationR4>>;\n  public organizationSearchR4(\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleOrganizationR4>(\n      'get',\n      `${this.basePath}/R4/Organization`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param address The patient&#x27;s street address.\n   * @param addressCity The city for patient&#x27;s home address.\n   * @param addressPostalcode The postal code for patient&#x27;s home address.\n   * @param addressState The state for the patient&#x27;s home address.\n   * @param birthdate The patient&#x27;s date of birth in the format YYYY-MM-DD.\n   * @param family The patient&#x27;s family (last) name.\n   * @param gender The patient&#x27;s legal sex. Starting in the August 2021 version of Epic, the legal-sex parameter is preferred.\n   * @param given The patient&#x27;s given name. May include first and middle names.\n   * @param identifier &lt;p&gt;The patient&#x27;s identifier.&lt;/p&gt;  &lt;p&gt;Starting in November 2018, this web service supports using ID and ID type combinations, such as Patient?identifier&#x3D;MRN|202497.&lt;/p&gt;\n   * @param legalSex The patient’s legal sex. Takes precedence over the gender search parameter. Available starting in the August 2021 version of Epic.\n   * @param name Any part of the patient&#x27;s name. When discrete name parameters are used, such as family or given, this parameter is ignored.\n   * @param ownName The patient&#x27;s own last name. Usually used in non-US names.\n   * @param ownPrefix The patient&#x27;s own prefix. Usually used in non-US names.\n   * @param partnerName The patient&#x27;s spouse&#x27;s last name. Usually used in non-US names.\n   * @param partnerPrefix The patient&#x27;s spouse&#x27;s prefix. Usually used in non-US names.\n   * @param telecom The patient&#x27;s phone number or email.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public patientSearchR4(\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    birthdate?: string,\n    family?: string,\n    gender?: string,\n    given?: string,\n    identifier?: string,\n    legalSex?: string,\n    name?: string,\n    ownName?: string,\n    ownPrefix?: string,\n    partnerName?: string,\n    partnerPrefix?: string,\n    telecom?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundlePatientR4>;\n  public patientSearchR4(\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    birthdate?: string,\n    family?: string,\n    gender?: string,\n    given?: string,\n    identifier?: string,\n    legalSex?: string,\n    name?: string,\n    ownName?: string,\n    ownPrefix?: string,\n    partnerName?: string,\n    partnerPrefix?: string,\n    telecom?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundlePatientR4>>;\n  public patientSearchR4(\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    birthdate?: string,\n    family?: string,\n    gender?: string,\n    given?: string,\n    identifier?: string,\n    legalSex?: string,\n    name?: string,\n    ownName?: string,\n    ownPrefix?: string,\n    partnerName?: string,\n    partnerPrefix?: string,\n    telecom?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundlePatientR4>>;\n  public patientSearchR4(\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    birthdate?: string,\n    family?: string,\n    gender?: string,\n    given?: string,\n    identifier?: string,\n    legalSex?: string,\n    name?: string,\n    ownName?: string,\n    ownPrefix?: string,\n    partnerName?: string,\n    partnerPrefix?: string,\n    telecom?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (address !== undefined && address !== null) {\n      queryParameters = queryParameters.set('address', <any>address);\n    }\n    if (addressCity !== undefined && addressCity !== null) {\n      queryParameters = queryParameters.set('address-city', <any>addressCity);\n    }\n    if (addressPostalcode !== undefined && addressPostalcode !== null) {\n      queryParameters = queryParameters.set(\n        'address-postalcode',\n        <any>addressPostalcode\n      );\n    }\n    if (addressState !== undefined && addressState !== null) {\n      queryParameters = queryParameters.set('address-state', <any>addressState);\n    }\n    if (birthdate !== undefined && birthdate !== null) {\n      queryParameters = queryParameters.set('birthdate', <any>birthdate);\n    }\n    if (family !== undefined && family !== null) {\n      queryParameters = queryParameters.set('family', <any>family);\n    }\n    if (gender !== undefined && gender !== null) {\n      queryParameters = queryParameters.set('gender', <any>gender);\n    }\n    if (given !== undefined && given !== null) {\n      queryParameters = queryParameters.set('given', <any>given);\n    }\n    if (identifier !== undefined && identifier !== null) {\n      queryParameters = queryParameters.set('identifier', <any>identifier);\n    }\n    if (legalSex !== undefined && legalSex !== null) {\n      queryParameters = queryParameters.set('legal-sex', <any>legalSex);\n    }\n    if (name !== undefined && name !== null) {\n      queryParameters = queryParameters.set('name', <any>name);\n    }\n    if (ownName !== undefined && ownName !== null) {\n      queryParameters = queryParameters.set('own-name', <any>ownName);\n    }\n    if (ownPrefix !== undefined && ownPrefix !== null) {\n      queryParameters = queryParameters.set('own-prefix', <any>ownPrefix);\n    }\n    if (partnerName !== undefined && partnerName !== null) {\n      queryParameters = queryParameters.set('partner-name', <any>partnerName);\n    }\n    if (partnerPrefix !== undefined && partnerPrefix !== null) {\n      queryParameters = queryParameters.set(\n        'partner-prefix',\n        <any>partnerPrefix\n      );\n    }\n    if (telecom !== undefined && telecom !== null) {\n      queryParameters = queryParameters.set('telecom', <any>telecom);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundlePatientR4>(\n      'get',\n      `${this.basePath}/R4/Patient`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param email Value in an email contact.\n   * @param identifier A practitioner&#x27;s identifier.\n   * @param location Reference to one of the locations at which this practitioner provides care.\n   * @param organization Reference to the organization that the practitioner represents or acts on behalf of.\n   * @param phone A value in a phone contact.\n   * @param practitioner A practitioner that can provide the defined services for the organization.\n   * @param role The role a practitioner can perform at an organization.\n   * @param specialty The practitioner&#x27;s specialty at an organization.\n   * @param telecom The value in any kind of contact.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public practitionerRoleSearchR4(\n    email?: string,\n    identifier?: string,\n    location?: string,\n    organization?: string,\n    phone?: string,\n    practitioner?: string,\n    role?: string,\n    specialty?: string,\n    telecom?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundlePractitionerRoleR4>;\n  public practitionerRoleSearchR4(\n    email?: string,\n    identifier?: string,\n    location?: string,\n    organization?: string,\n    phone?: string,\n    practitioner?: string,\n    role?: string,\n    specialty?: string,\n    telecom?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundlePractitionerRoleR4>>;\n  public practitionerRoleSearchR4(\n    email?: string,\n    identifier?: string,\n    location?: string,\n    organization?: string,\n    phone?: string,\n    practitioner?: string,\n    role?: string,\n    specialty?: string,\n    telecom?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundlePractitionerRoleR4>>;\n  public practitionerRoleSearchR4(\n    email?: string,\n    identifier?: string,\n    location?: string,\n    organization?: string,\n    phone?: string,\n    practitioner?: string,\n    role?: string,\n    specialty?: string,\n    telecom?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (email !== undefined && email !== null) {\n      queryParameters = queryParameters.set('email', <any>email);\n    }\n    if (identifier !== undefined && identifier !== null) {\n      queryParameters = queryParameters.set('identifier', <any>identifier);\n    }\n    if (location !== undefined && location !== null) {\n      queryParameters = queryParameters.set('location', <any>location);\n    }\n    if (organization !== undefined && organization !== null) {\n      queryParameters = queryParameters.set('organization', <any>organization);\n    }\n    if (phone !== undefined && phone !== null) {\n      queryParameters = queryParameters.set('phone', <any>phone);\n    }\n    if (practitioner !== undefined && practitioner !== null) {\n      queryParameters = queryParameters.set('practitioner', <any>practitioner);\n    }\n    if (role !== undefined && role !== null) {\n      queryParameters = queryParameters.set('role', <any>role);\n    }\n    if (specialty !== undefined && specialty !== null) {\n      queryParameters = queryParameters.set('specialty', <any>specialty);\n    }\n    if (telecom !== undefined && telecom !== null) {\n      queryParameters = queryParameters.set('telecom', <any>telecom);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundlePractitionerRoleR4>(\n      'get',\n      `${this.basePath}/R4/PractitionerRole`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param family A portion of the family name. If name or identifier is provided, this is not required.\n   * @param identifier A practitioner&#x27;s identifier, such as NPI. If Family or Name is provided, this is not required. This web service supports using ID and ID type combinations, such as Practitioner?identifier&#x3D;External|802559.\n   * @param name Free text that can match either Family or Given (or both). If Family or Identifier is provided, this is not required.\n   * @param address The free-text address.\n   * @param addressCity The city specified in the address. City cannot be specified without state or ZIP code.\n   * @param addressPostalcode A ZIP code specified in the address.\n   * @param addressState A state specified in the address.\n   * @param given A portion of the given name. If Given is provided, Family must also be provided.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public practitionerSearchR4(\n    family: string,\n    identifier: string,\n    name: string,\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    given?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundlePractitionerR4>;\n  public practitionerSearchR4(\n    family: string,\n    identifier: string,\n    name: string,\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    given?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundlePractitionerR4>>;\n  public practitionerSearchR4(\n    family: string,\n    identifier: string,\n    name: string,\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    given?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundlePractitionerR4>>;\n  public practitionerSearchR4(\n    family: string,\n    identifier: string,\n    name: string,\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    given?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (family === null || family === undefined) {\n      throw new Error(\n        'Required parameter family was null or undefined when calling practitionerSearchR4.'\n      );\n    }\n\n    if (identifier === null || identifier === undefined) {\n      throw new Error(\n        'Required parameter identifier was null or undefined when calling practitionerSearchR4.'\n      );\n    }\n\n    if (name === null || name === undefined) {\n      throw new Error(\n        'Required parameter name was null or undefined when calling practitionerSearchR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (address !== undefined && address !== null) {\n      queryParameters = queryParameters.set('address', <any>address);\n    }\n    if (addressCity !== undefined && addressCity !== null) {\n      queryParameters = queryParameters.set('address-city', <any>addressCity);\n    }\n    if (addressPostalcode !== undefined && addressPostalcode !== null) {\n      queryParameters = queryParameters.set(\n        'address-postalcode',\n        <any>addressPostalcode\n      );\n    }\n    if (addressState !== undefined && addressState !== null) {\n      queryParameters = queryParameters.set('address-state', <any>addressState);\n    }\n    if (family !== undefined && family !== null) {\n      queryParameters = queryParameters.set('family', <any>family);\n    }\n    if (given !== undefined && given !== null) {\n      queryParameters = queryParameters.set('given', <any>given);\n    }\n    if (identifier !== undefined && identifier !== null) {\n      queryParameters = queryParameters.set('identifier', <any>identifier);\n    }\n    if (name !== undefined && name !== null) {\n      queryParameters = queryParameters.set('name', <any>name);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundlePractitionerR4>(\n      'get',\n      `${this.basePath}/R4/Practitioner`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param identifier The study code.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public researchStudySearchR4(\n    identifier: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleResearchStudyR4>;\n  public researchStudySearchR4(\n    identifier: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleResearchStudyR4>>;\n  public researchStudySearchR4(\n    identifier: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleResearchStudyR4>>;\n  public researchStudySearchR4(\n    identifier: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (identifier === null || identifier === undefined) {\n      throw new Error(\n        'Required parameter identifier was null or undefined when calling researchStudySearchR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (identifier !== undefined && identifier !== null) {\n      queryParameters = queryParameters.set('identifier', <any>identifier);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleResearchStudyR4>(\n      'get',\n      `${this.basePath}/R4/ResearchStudy`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public specimenSearchR4(\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleSpecimenR4>;\n  public specimenSearchR4(\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleSpecimenR4>>;\n  public specimenSearchR4(\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleSpecimenR4>>;\n  public specimenSearchR4(\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleSpecimenR4>(\n      'get',\n      `${this.basePath}/R4/Specimen`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public substanceSearchR4(\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleSubstanceR4>;\n  public substanceSearchR4(\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleSubstanceR4>>;\n  public substanceSearchR4(\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleSubstanceR4>>;\n  public substanceSearchR4(\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleSubstanceR4>(\n      'get',\n      `${this.basePath}/R4/Substance`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleDocumentReferenceR4 } from '../model/bundleDocumentReferenceR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchRadiologyResultsR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param author FHIR ID for the providers who signed or addended the study.\n   * @param category Must be set to “imaging-result” if specified.\n   * @param date The instant or range of instants when a study was addended or finalized.\n   * @param patient The subject of the report if a patient\n   * @param period The instant when the exam was performed.\n   * @param subject The patient that is the subject of the note.\n   * @param type The LOINC or system code for the radiology result.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public documentReferenceSearchRadiologyResultsR4(\n    author?: string,\n    category?: string,\n    date?: string,\n    patient?: string,\n    period?: string,\n    subject?: string,\n    type?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleDocumentReferenceR4>;\n  public documentReferenceSearchRadiologyResultsR4(\n    author?: string,\n    category?: string,\n    date?: string,\n    patient?: string,\n    period?: string,\n    subject?: string,\n    type?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleDocumentReferenceR4>>;\n  public documentReferenceSearchRadiologyResultsR4(\n    author?: string,\n    category?: string,\n    date?: string,\n    patient?: string,\n    period?: string,\n    subject?: string,\n    type?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleDocumentReferenceR4>>;\n  public documentReferenceSearchRadiologyResultsR4(\n    author?: string,\n    category?: string,\n    date?: string,\n    patient?: string,\n    period?: string,\n    subject?: string,\n    type?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (author !== undefined && author !== null) {\n      queryParameters = queryParameters.set('author', <any>author);\n    }\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (period !== undefined && period !== null) {\n      queryParameters = queryParameters.set('period', <any>period);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n    if (type !== undefined && type !== null) {\n      queryParameters = queryParameters.set('type', <any>type);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleDocumentReferenceR4>(\n      'get',\n      `${this.basePath}/R4/DocumentReference`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleDocumentReferenceSTU3 } from '../model/bundleDocumentReferenceSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchRadiologyResultsSTU3Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param author FHIR ID for the providers who signed or addended the study.\n   * @param _class Must be set to “imaging-result” if specified.\n   * @param indexed The instant or range of instants when a study was addended or finalized.\n   * @param patient FHIR Patient ID. If provided, the search returns all matching results for this patient.\n   * @param period The instant when the exam was performed.\n   * @param subject FHIR Patient ID. If provided, the search returns all matching results for this patient.\n   * @param type LOINC code for the radiology result.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public documentReferenceSearchRadiologyResultsSTU3(\n    author?: string,\n    _class?: string,\n    indexed?: string,\n    patient?: string,\n    period?: string,\n    subject?: string,\n    type?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleDocumentReferenceSTU3>;\n  public documentReferenceSearchRadiologyResultsSTU3(\n    author?: string,\n    _class?: string,\n    indexed?: string,\n    patient?: string,\n    period?: string,\n    subject?: string,\n    type?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleDocumentReferenceSTU3>>;\n  public documentReferenceSearchRadiologyResultsSTU3(\n    author?: string,\n    _class?: string,\n    indexed?: string,\n    patient?: string,\n    period?: string,\n    subject?: string,\n    type?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleDocumentReferenceSTU3>>;\n  public documentReferenceSearchRadiologyResultsSTU3(\n    author?: string,\n    _class?: string,\n    indexed?: string,\n    patient?: string,\n    period?: string,\n    subject?: string,\n    type?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (author !== undefined && author !== null) {\n      queryParameters = queryParameters.set('author', <any>author);\n    }\n    if (_class !== undefined && _class !== null) {\n      queryParameters = queryParameters.set('class', <any>_class);\n    }\n    if (indexed !== undefined && indexed !== null) {\n      queryParameters = queryParameters.set('indexed', <any>indexed);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (period !== undefined && period !== null) {\n      queryParameters = queryParameters.set('period', <any>period);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n    if (type !== undefined && type !== null) {\n      queryParameters = queryParameters.set('type', <any>type);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleDocumentReferenceSTU3>(\n      'get',\n      `${this.basePath}/STU3/DocumentReference`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleConditionR4 } from '../model/bundleConditionR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchReasonforVisitR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param category Always “reason-for-visit” for this API. Multiple category values are allowed if the requestor is authorized to search multiple Condition categories.\n   * @param encounter Reference to an encounter resource the condition is for.\n   * @param patient Reference to a patient resource the condition is for.\n   * @param subject Reference to a patient resource the condition is for.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public conditionSearchReasonforVisitR4(\n    category?: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleConditionR4>;\n  public conditionSearchReasonforVisitR4(\n    category?: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleConditionR4>>;\n  public conditionSearchReasonforVisitR4(\n    category?: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleConditionR4>>;\n  public conditionSearchReasonforVisitR4(\n    category?: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (encounter !== undefined && encounter !== null) {\n      queryParameters = queryParameters.set('encounter', <any>encounter);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleConditionR4>(\n      'get',\n      `${this.basePath}/R4/Condition`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleDiagnosticReportDSTU2 } from '../model/bundleDiagnosticReportDSTU2';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchResultsDSTU2Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param patient The patient FHIR ID.\n   * @param subject The patient FHIR ID.\n   * @param code LOINC code of procedure(s).\n   * @param date Date when obtained.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public diagnosticReportSearchResultsDSTU2(\n    patient: string,\n    subject: string,\n    code?: string,\n    date?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleDiagnosticReportDSTU2>;\n  public diagnosticReportSearchResultsDSTU2(\n    patient: string,\n    subject: string,\n    code?: string,\n    date?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleDiagnosticReportDSTU2>>;\n  public diagnosticReportSearchResultsDSTU2(\n    patient: string,\n    subject: string,\n    code?: string,\n    date?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleDiagnosticReportDSTU2>>;\n  public diagnosticReportSearchResultsDSTU2(\n    patient: string,\n    subject: string,\n    code?: string,\n    date?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling diagnosticReportSearchResultsDSTU2.'\n      );\n    }\n\n    if (subject === null || subject === undefined) {\n      throw new Error(\n        'Required parameter subject was null or undefined when calling diagnosticReportSearchResultsDSTU2.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (code !== undefined && code !== null) {\n      queryParameters = queryParameters.set('code', <any>code);\n    }\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleDiagnosticReportDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/DiagnosticReport`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleDiagnosticReportR4 } from '../model/bundleDiagnosticReportR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchResultsR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param category &lt;p&gt;The service category.&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Starting in the November 2021 version of Epic (or the August 2021 version with special updates), this can be either an Epic order type or a value from the &lt;a href&#x3D;\\&quot;http://hl7.org/fhir/us/core/2019Sep/ValueSet-us-core-diagnosticreport-category.html\\&quot;&gt;US Core valueset for DiagnosticReport&lt;/a&gt;. &lt;li&gt;In earlier versions, this must be a value from the &lt;a href&#x3D;\\&quot;http://hl7.org/fhir/us/core/2019Sep/ValueSet-us-core-diagnosticreport-category.html\\&quot;&gt;US Core valueset for DiagnosticReport&lt;/a&gt;.&lt;/ul&gt;\n   * @param code The code for the report as a whole, as opposed to codes for the atomic results, which are the names on the observation resource referred to from the result.  &lt;ul&gt;&lt;li&gt;Starting in the November 2021 version of Epic, or the August 2021 version with special updates, this can be any code type associated with the procedures, including LOINC, CPT, SNOMED, or other code types mapped to a procedure in Epic.&lt;/li&gt; &lt;li&gt;In earlier versions, this can only be a LOINC code.&lt;/li&gt;&lt;/ul&gt;\n   * @param date The date or date range the order was resulted.\n   * @param identifier An identifier for the report. This can be the Epic order ID or the accession number.\n   * @param patient The reference to a patient resource.\n   * @param subject The reference to a patient resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public diagnosticReportSearchResultsR4(\n    category?: string,\n    code?: string,\n    date?: string,\n    identifier?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleDiagnosticReportR4>;\n  public diagnosticReportSearchResultsR4(\n    category?: string,\n    code?: string,\n    date?: string,\n    identifier?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleDiagnosticReportR4>>;\n  public diagnosticReportSearchResultsR4(\n    category?: string,\n    code?: string,\n    date?: string,\n    identifier?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleDiagnosticReportR4>>;\n  public diagnosticReportSearchResultsR4(\n    category?: string,\n    code?: string,\n    date?: string,\n    identifier?: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (code !== undefined && code !== null) {\n      queryParameters = queryParameters.set('code', <any>code);\n    }\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n    if (identifier !== undefined && identifier !== null) {\n      queryParameters = queryParameters.set('identifier', <any>identifier);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleDiagnosticReportR4>(\n      'get',\n      `${this.basePath}/R4/DiagnosticReport`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleDiagnosticReportSTU3 } from '../model/bundleDiagnosticReportSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchResultsSTU3Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param code The code for the report as a whole, as opposed to codes for the atomic results, which are the names on the observation resource referred to from the result.  &lt;ul&gt;&lt;li&gt;Starting in the November 2021 version of Epic, or the August 2021 version with special updates, this can be any code type associated with the procedures, including LOINC, CPT, SNOMED, or other code types mapped to a procedure in Epic.&lt;/li&gt; &lt;li&gt;In earlier versions, this can only be a LOINC code.&lt;/li&gt;&lt;/ul&gt;\n   * @param date The date or date range the order was resulted.\n   * @param patient The subject of the report if it is a patient.\n   * @param subject The subject of the report if it is a patient.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public diagnosticReportSearchResultsSTU3(\n    code?: string,\n    date?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleDiagnosticReportSTU3>;\n  public diagnosticReportSearchResultsSTU3(\n    code?: string,\n    date?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleDiagnosticReportSTU3>>;\n  public diagnosticReportSearchResultsSTU3(\n    code?: string,\n    date?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleDiagnosticReportSTU3>>;\n  public diagnosticReportSearchResultsSTU3(\n    code?: string,\n    date?: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (code !== undefined && code !== null) {\n      queryParameters = queryParameters.set('code', <any>code);\n    }\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleDiagnosticReportSTU3>(\n      'get',\n      `${this.basePath}/STU3/DiagnosticReport`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleAllergyIntoleranceSTU3 } from '../model/bundleAllergyIntoleranceSTU3';\nimport { BundleAppointmentSTU3 } from '../model/bundleAppointmentSTU3';\nimport { BundleCoverageSTU3 } from '../model/bundleCoverageSTU3';\nimport { BundleDeviceRequestSTU3 } from '../model/bundleDeviceRequestSTU3';\nimport { BundleEncounterSTU3 } from '../model/bundleEncounterSTU3';\nimport { BundleImmunizationRecommendationSTU3 } from '../model/bundleImmunizationRecommendationSTU3';\nimport { BundleImmunizationSTU3 } from '../model/bundleImmunizationSTU3';\nimport { BundleMedicationStatementSTU3 } from '../model/bundleMedicationStatementSTU3';\nimport { BundleNutritionOrderSTU3 } from '../model/bundleNutritionOrderSTU3';\nimport { BundlePatientSTU3 } from '../model/bundlePatientSTU3';\nimport { BundlePractitionerRoleSTU3 } from '../model/bundlePractitionerRoleSTU3';\nimport { BundlePractitionerSTU3 } from '../model/bundlePractitionerSTU3';\nimport { BundleSpecimenSTU3 } from '../model/bundleSpecimenSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchSTU3Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param patient Reference to a patient resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public allergyIntoleranceSearchSTU3(\n    patient: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleAllergyIntoleranceSTU3>;\n  public allergyIntoleranceSearchSTU3(\n    patient: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleAllergyIntoleranceSTU3>>;\n  public allergyIntoleranceSearchSTU3(\n    patient: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleAllergyIntoleranceSTU3>>;\n  public allergyIntoleranceSearchSTU3(\n    patient: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling allergyIntoleranceSearchSTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleAllergyIntoleranceSTU3>(\n      'get',\n      `${this.basePath}/STU3/AllergyIntolerance`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient Reference to the Patient resource.\n   * @param date Appointment date.\n   * @param identifier Appointment identifier (encounter CSN).\n   * @param status Appointment status. Supported values include: &lt;ul&gt; &lt;li&gt;booked&lt;/li&gt; &lt;li&gt;fulfilled&lt;/li&gt; &lt;li&gt;cancelled&lt;/li&gt; &lt;li&gt;noshow&lt;/li&gt; &lt;li&gt;arrived&lt;/li&gt; &lt;li&gt;proposed&lt;/li&gt; &lt;/ul&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public appointmentSearchSTU3(\n    patient: string,\n    date?: string,\n    identifier?: string,\n    status?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleAppointmentSTU3>;\n  public appointmentSearchSTU3(\n    patient: string,\n    date?: string,\n    identifier?: string,\n    status?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleAppointmentSTU3>>;\n  public appointmentSearchSTU3(\n    patient: string,\n    date?: string,\n    identifier?: string,\n    status?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleAppointmentSTU3>>;\n  public appointmentSearchSTU3(\n    patient: string,\n    date?: string,\n    identifier?: string,\n    status?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling appointmentSearchSTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n    if (identifier !== undefined && identifier !== null) {\n      queryParameters = queryParameters.set('identifier', <any>identifier);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleAppointmentSTU3>(\n      'get',\n      `${this.basePath}/STU3/Appointment`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param beneficiary &lt;p&gt;Either the beneficiary or the patient must be specified in the search request. If both are specified, they must match.&lt;/p&gt;\n   * @param patient &lt;p&gt;Either the beneficiary or the patient must be specified in the search request. If both are specified, they must match.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public coverageSearchSTU3(\n    beneficiary: string,\n    patient: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleCoverageSTU3>;\n  public coverageSearchSTU3(\n    beneficiary: string,\n    patient: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleCoverageSTU3>>;\n  public coverageSearchSTU3(\n    beneficiary: string,\n    patient: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleCoverageSTU3>>;\n  public coverageSearchSTU3(\n    beneficiary: string,\n    patient: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (beneficiary === null || beneficiary === undefined) {\n      throw new Error(\n        'Required parameter beneficiary was null or undefined when calling coverageSearchSTU3.'\n      );\n    }\n\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling coverageSearchSTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (beneficiary !== undefined && beneficiary !== null) {\n      queryParameters = queryParameters.set('beneficiary', <any>beneficiary);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleCoverageSTU3>(\n      'get',\n      `${this.basePath}/STU3/Coverage`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient &lt;p&gt;Patient identifier for the patient who is the target of the request&lt;/p&gt; &lt;p&gt;This property is always required by Epic.&lt;/p&gt;\n   * @param status &lt;p&gt;The status of a request. Can be one of the following:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;active&lt;/li&gt; &lt;li&gt;completed&lt;/li&gt; &lt;li&gt;draft&lt;/li&gt; &lt;li&gt;cancelled&lt;/li&gt; &lt;li&gt;unknown&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;If unspecified, returns requests of all statuses.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public deviceRequestSearchSTU3(\n    patient: string,\n    status?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleDeviceRequestSTU3>;\n  public deviceRequestSearchSTU3(\n    patient: string,\n    status?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleDeviceRequestSTU3>>;\n  public deviceRequestSearchSTU3(\n    patient: string,\n    status?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleDeviceRequestSTU3>>;\n  public deviceRequestSearchSTU3(\n    patient: string,\n    status?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling deviceRequestSearchSTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleDeviceRequestSTU3>(\n      'get',\n      `${this.basePath}/STU3/DeviceRequest`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param identifier &lt;p&gt;Identifiers by which this encounter is known in the format &amp;lt;code system&amp;gt;|&amp;lt;code&amp;gt;.&lt;/p&gt; &lt;p&gt;This search parameter is available starting in the August 2021 version of Epic.&lt;/p&gt;\n   * @param _class Classification of patient encounter. For organizations in the Netherlands, this element includes only the ACT encounter code.\n   * @param date A date range that the encounter takes place.\n   * @param patient Reference to a patient resource.\n   * @param subject Reference to a patient resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public encounterSearchSTU3(\n    identifier: string,\n    _class?: string,\n    date?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleEncounterSTU3>;\n  public encounterSearchSTU3(\n    identifier: string,\n    _class?: string,\n    date?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleEncounterSTU3>>;\n  public encounterSearchSTU3(\n    identifier: string,\n    _class?: string,\n    date?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleEncounterSTU3>>;\n  public encounterSearchSTU3(\n    identifier: string,\n    _class?: string,\n    date?: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (identifier === null || identifier === undefined) {\n      throw new Error(\n        'Required parameter identifier was null or undefined when calling encounterSearchSTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (_class !== undefined && _class !== null) {\n      queryParameters = queryParameters.set('class', <any>_class);\n    }\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n    if (identifier !== undefined && identifier !== null) {\n      queryParameters = queryParameters.set('identifier', <any>identifier);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleEncounterSTU3>(\n      'get',\n      `${this.basePath}/STU3/Encounter`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient The patient associated with the immunization recommendation. Reference to the Patient resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public immunizationRecommendationSearchSTU3(\n    patient: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleImmunizationRecommendationSTU3>;\n  public immunizationRecommendationSearchSTU3(\n    patient: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleImmunizationRecommendationSTU3>>;\n  public immunizationRecommendationSearchSTU3(\n    patient: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleImmunizationRecommendationSTU3>>;\n  public immunizationRecommendationSearchSTU3(\n    patient: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling immunizationRecommendationSearchSTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleImmunizationRecommendationSTU3>(\n      'get',\n      `${this.basePath}/STU3/ImmunizationRecommendation`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient Reference to the Patient who was immunized.\n   * @param date Vaccination administration date.\n   * @param notgiven Flag for whether the immunization was given. If not provided, defaults to \\&quot;false\\&quot; to return only given immunizations.\n   * @param status &lt;p&gt;Immunization event status. “Completed” is the only supported value, and this value is used by default if no status value is specified.&lt;/p&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public immunizationSearchSTU3(\n    patient: string,\n    date?: string,\n    notgiven?: string,\n    status?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleImmunizationSTU3>;\n  public immunizationSearchSTU3(\n    patient: string,\n    date?: string,\n    notgiven?: string,\n    status?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleImmunizationSTU3>>;\n  public immunizationSearchSTU3(\n    patient: string,\n    date?: string,\n    notgiven?: string,\n    status?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleImmunizationSTU3>>;\n  public immunizationSearchSTU3(\n    patient: string,\n    date?: string,\n    notgiven?: string,\n    status?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling immunizationSearchSTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n    if (notgiven !== undefined && notgiven !== null) {\n      queryParameters = queryParameters.set('notgiven', <any>notgiven);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleImmunizationSTU3>(\n      'get',\n      `${this.basePath}/STU3/Immunization`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient The FHIR Patient ID. Either this element or Subject is required.\n   * @param subject The FHIR patient ID. Either this element or Patient is required.\n   * @param category &lt;p&gt;The category of medication orders to search for. By default all categories are searched.&lt;/p&gt;  Supported categories: &lt;ul&gt; &lt;li&gt;inpatient&lt;/li&gt; &lt;li&gt;outpatient&lt;/li&gt; &lt;li&gt;community&lt;/li&gt; &lt;li&gt;patientspecified&lt;/li&gt;  &lt;p&gt;Starting in February 2022 or November 2021 with special update, organizations in the Netherlands can use the code 6 to search for MedicationUse profiles.&lt;/p&gt;\n   * @param effective Date when patient was taking (or not taking) the medication.\n   * @param status &lt;p&gt;The status for medication orders. By default, active is assumed. Active must be present in all searches (i.e. you cannot search for just completed meds).&lt;/p&gt;  Supported statuses: &lt;ul&gt; &lt;li&gt;On-hold&lt;/li&gt; &lt;li&gt;Completed&lt;/li&gt; &lt;li&gt;Stopped&lt;/li&gt; &lt;li&gt;Active&lt;/li&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationStatementSearchSTU3(\n    patient: string,\n    subject: string,\n    category?: string,\n    effective?: string,\n    status?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleMedicationStatementSTU3>;\n  public medicationStatementSearchSTU3(\n    patient: string,\n    subject: string,\n    category?: string,\n    effective?: string,\n    status?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleMedicationStatementSTU3>>;\n  public medicationStatementSearchSTU3(\n    patient: string,\n    subject: string,\n    category?: string,\n    effective?: string,\n    status?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleMedicationStatementSTU3>>;\n  public medicationStatementSearchSTU3(\n    patient: string,\n    subject: string,\n    category?: string,\n    effective?: string,\n    status?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling medicationStatementSearchSTU3.'\n      );\n    }\n\n    if (subject === null || subject === undefined) {\n      throw new Error(\n        'Required parameter subject was null or undefined when calling medicationStatementSearchSTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (effective !== undefined && effective !== null) {\n      queryParameters = queryParameters.set('effective', <any>effective);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleMedicationStatementSTU3>(\n      'get',\n      `${this.basePath}/STU3/MedicationStatement`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param patient FHIR identifier for the patient whose nutrition order details are being requested.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public nutritionOrderSearchSTU3(\n    patient: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleNutritionOrderSTU3>;\n  public nutritionOrderSearchSTU3(\n    patient: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleNutritionOrderSTU3>>;\n  public nutritionOrderSearchSTU3(\n    patient: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleNutritionOrderSTU3>>;\n  public nutritionOrderSearchSTU3(\n    patient: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling nutritionOrderSearchSTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleNutritionOrderSTU3>(\n      'get',\n      `${this.basePath}/STU3/NutritionOrder`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param address The patient&#x27;s street address.\n   * @param addressCity The city for patient&#x27;s home address.\n   * @param addressPostalcode The postal code for patient&#x27;s home address.\n   * @param addressState The state for the patient&#x27;s home address.\n   * @param birthdate The patient&#x27;s date of birth in the format YYYY-MM-DD.\n   * @param family The patient&#x27;s family (last) name.\n   * @param gender The patient&#x27;s legal sex. Starting in the August 2021 version of Epic, the legal-sex parameter is preferred.\n   * @param given The patient&#x27;s given name. May include first and middle names.\n   * @param identifier &lt;p&gt;The patient&#x27;s identifier.&lt;/p&gt;  &lt;p&gt;This web service supports using ID and ID type combinations, such as Patient?identifier&#x3D;MRN|202497.&lt;/p&gt;\n   * @param legalSex The patient’s legal sex. Takes precedence over the gender search parameter.   Available starting in the August 2021 version of Epic.\n   * @param ownName The patient&#x27;s own last name. Usually used in non-US names.\n   * @param ownPrefix The patient&#x27;s own prefix. Usually used in non-US names.\n   * @param partnerName The patient&#x27;s spouse&#x27;s last name. Usually used in non-US names.\n   * @param partnerPrefix The patient&#x27;s spouse&#x27;s prefix. Usually used in non-US names.\n   * @param telecom The patient&#x27;s phone number or email.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public patientSearchSTU3(\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    birthdate?: string,\n    family?: string,\n    gender?: string,\n    given?: string,\n    identifier?: string,\n    legalSex?: string,\n    ownName?: string,\n    ownPrefix?: string,\n    partnerName?: string,\n    partnerPrefix?: string,\n    telecom?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundlePatientSTU3>;\n  public patientSearchSTU3(\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    birthdate?: string,\n    family?: string,\n    gender?: string,\n    given?: string,\n    identifier?: string,\n    legalSex?: string,\n    ownName?: string,\n    ownPrefix?: string,\n    partnerName?: string,\n    partnerPrefix?: string,\n    telecom?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundlePatientSTU3>>;\n  public patientSearchSTU3(\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    birthdate?: string,\n    family?: string,\n    gender?: string,\n    given?: string,\n    identifier?: string,\n    legalSex?: string,\n    ownName?: string,\n    ownPrefix?: string,\n    partnerName?: string,\n    partnerPrefix?: string,\n    telecom?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundlePatientSTU3>>;\n  public patientSearchSTU3(\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    birthdate?: string,\n    family?: string,\n    gender?: string,\n    given?: string,\n    identifier?: string,\n    legalSex?: string,\n    ownName?: string,\n    ownPrefix?: string,\n    partnerName?: string,\n    partnerPrefix?: string,\n    telecom?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (address !== undefined && address !== null) {\n      queryParameters = queryParameters.set('address', <any>address);\n    }\n    if (addressCity !== undefined && addressCity !== null) {\n      queryParameters = queryParameters.set('address-city', <any>addressCity);\n    }\n    if (addressPostalcode !== undefined && addressPostalcode !== null) {\n      queryParameters = queryParameters.set(\n        'address-postalcode',\n        <any>addressPostalcode\n      );\n    }\n    if (addressState !== undefined && addressState !== null) {\n      queryParameters = queryParameters.set('address-state', <any>addressState);\n    }\n    if (birthdate !== undefined && birthdate !== null) {\n      queryParameters = queryParameters.set('birthdate', <any>birthdate);\n    }\n    if (family !== undefined && family !== null) {\n      queryParameters = queryParameters.set('family', <any>family);\n    }\n    if (gender !== undefined && gender !== null) {\n      queryParameters = queryParameters.set('gender', <any>gender);\n    }\n    if (given !== undefined && given !== null) {\n      queryParameters = queryParameters.set('given', <any>given);\n    }\n    if (identifier !== undefined && identifier !== null) {\n      queryParameters = queryParameters.set('identifier', <any>identifier);\n    }\n    if (legalSex !== undefined && legalSex !== null) {\n      queryParameters = queryParameters.set('legal-sex', <any>legalSex);\n    }\n    if (ownName !== undefined && ownName !== null) {\n      queryParameters = queryParameters.set('own-name', <any>ownName);\n    }\n    if (ownPrefix !== undefined && ownPrefix !== null) {\n      queryParameters = queryParameters.set('own-prefix', <any>ownPrefix);\n    }\n    if (partnerName !== undefined && partnerName !== null) {\n      queryParameters = queryParameters.set('partner-name', <any>partnerName);\n    }\n    if (partnerPrefix !== undefined && partnerPrefix !== null) {\n      queryParameters = queryParameters.set(\n        'partner-prefix',\n        <any>partnerPrefix\n      );\n    }\n    if (telecom !== undefined && telecom !== null) {\n      queryParameters = queryParameters.set('telecom', <any>telecom);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundlePatientSTU3>(\n      'get',\n      `${this.basePath}/STU3/Patient`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param email Value in an email contact.\n   * @param identifier A practitioner&#x27;s identifier. A successful identifier search comprises of a token that is a URN:OID: + the code system, and a code in the format identifier&#x3D;code system|code.\n   * @param location One of the locations at which this practitioner provides care.\n   * @param organization The organization that the practitioner represents or acts on behalf of.\n   * @param phone A value in a phone contact.\n   * @param practitioner A practitioner that can provide the defined services for the organization.\n   * @param role The role a practitioner can perform at an organization.\n   * @param specialty The practitioner&#x27;s specialty at an organization.\n   * @param telecom The value in any kind of contact.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public practitionerRoleSearchSTU3(\n    email?: string,\n    identifier?: string,\n    location?: string,\n    organization?: string,\n    phone?: string,\n    practitioner?: string,\n    role?: string,\n    specialty?: string,\n    telecom?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundlePractitionerRoleSTU3>;\n  public practitionerRoleSearchSTU3(\n    email?: string,\n    identifier?: string,\n    location?: string,\n    organization?: string,\n    phone?: string,\n    practitioner?: string,\n    role?: string,\n    specialty?: string,\n    telecom?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundlePractitionerRoleSTU3>>;\n  public practitionerRoleSearchSTU3(\n    email?: string,\n    identifier?: string,\n    location?: string,\n    organization?: string,\n    phone?: string,\n    practitioner?: string,\n    role?: string,\n    specialty?: string,\n    telecom?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundlePractitionerRoleSTU3>>;\n  public practitionerRoleSearchSTU3(\n    email?: string,\n    identifier?: string,\n    location?: string,\n    organization?: string,\n    phone?: string,\n    practitioner?: string,\n    role?: string,\n    specialty?: string,\n    telecom?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (email !== undefined && email !== null) {\n      queryParameters = queryParameters.set('email', <any>email);\n    }\n    if (identifier !== undefined && identifier !== null) {\n      queryParameters = queryParameters.set('identifier', <any>identifier);\n    }\n    if (location !== undefined && location !== null) {\n      queryParameters = queryParameters.set('location', <any>location);\n    }\n    if (organization !== undefined && organization !== null) {\n      queryParameters = queryParameters.set('organization', <any>organization);\n    }\n    if (phone !== undefined && phone !== null) {\n      queryParameters = queryParameters.set('phone', <any>phone);\n    }\n    if (practitioner !== undefined && practitioner !== null) {\n      queryParameters = queryParameters.set('practitioner', <any>practitioner);\n    }\n    if (role !== undefined && role !== null) {\n      queryParameters = queryParameters.set('role', <any>role);\n    }\n    if (specialty !== undefined && specialty !== null) {\n      queryParameters = queryParameters.set('specialty', <any>specialty);\n    }\n    if (telecom !== undefined && telecom !== null) {\n      queryParameters = queryParameters.set('telecom', <any>telecom);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundlePractitionerRoleSTU3>(\n      'get',\n      `${this.basePath}/STU3/PractitionerRole`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param family A portion of the family name. If name or identifier is provided, this is not required.\n   * @param identifier &lt;p&gt;A practitioner&#x27;s identifier, such as NPI. If Family or Name is provided, this is not required.&lt;/p&gt;  &lt;p&gt;Starting in November 2018, this web service supports using ID and ID type combinations, such as Practitioner?identifier&#x3D;External|802559.&lt;/p&gt;\n   * @param name Free text that can match either Family or Given (or both). If Family or Identifier is provided, this is not required.\n   * @param address The free-text address.\n   * @param addressCity The city specified in the address. City cannot be specified without state or ZIP code.\n   * @param addressPostalcode A ZIP code specified in the address.\n   * @param addressState A state specified in the address.\n   * @param given A portion of the given name. If Given is provided, Family must also be provided.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public practitionerSearchSTU3(\n    family: string,\n    identifier: string,\n    name: string,\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    given?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundlePractitionerSTU3>;\n  public practitionerSearchSTU3(\n    family: string,\n    identifier: string,\n    name: string,\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    given?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundlePractitionerSTU3>>;\n  public practitionerSearchSTU3(\n    family: string,\n    identifier: string,\n    name: string,\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    given?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundlePractitionerSTU3>>;\n  public practitionerSearchSTU3(\n    family: string,\n    identifier: string,\n    name: string,\n    address?: string,\n    addressCity?: string,\n    addressPostalcode?: string,\n    addressState?: string,\n    given?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (family === null || family === undefined) {\n      throw new Error(\n        'Required parameter family was null or undefined when calling practitionerSearchSTU3.'\n      );\n    }\n\n    if (identifier === null || identifier === undefined) {\n      throw new Error(\n        'Required parameter identifier was null or undefined when calling practitionerSearchSTU3.'\n      );\n    }\n\n    if (name === null || name === undefined) {\n      throw new Error(\n        'Required parameter name was null or undefined when calling practitionerSearchSTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (address !== undefined && address !== null) {\n      queryParameters = queryParameters.set('address', <any>address);\n    }\n    if (addressCity !== undefined && addressCity !== null) {\n      queryParameters = queryParameters.set('address-city', <any>addressCity);\n    }\n    if (addressPostalcode !== undefined && addressPostalcode !== null) {\n      queryParameters = queryParameters.set(\n        'address-postalcode',\n        <any>addressPostalcode\n      );\n    }\n    if (addressState !== undefined && addressState !== null) {\n      queryParameters = queryParameters.set('address-state', <any>addressState);\n    }\n    if (family !== undefined && family !== null) {\n      queryParameters = queryParameters.set('family', <any>family);\n    }\n    if (given !== undefined && given !== null) {\n      queryParameters = queryParameters.set('given', <any>given);\n    }\n    if (identifier !== undefined && identifier !== null) {\n      queryParameters = queryParameters.set('identifier', <any>identifier);\n    }\n    if (name !== undefined && name !== null) {\n      queryParameters = queryParameters.set('name', <any>name);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundlePractitionerSTU3>(\n      'get',\n      `${this.basePath}/STU3/Practitioner`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public specimenSearchSTU3(\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleSpecimenSTU3>;\n  public specimenSearchSTU3(\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleSpecimenSTU3>>;\n  public specimenSearchSTU3(\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleSpecimenSTU3>>;\n  public specimenSearchSTU3(\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleSpecimenSTU3>(\n      'get',\n      `${this.basePath}/STU3/Specimen`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleProcedureR4 } from '../model/bundleProcedureR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchSurgicalHistoryR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param category A code that classifies the procedure. This will always be SNOMED code 387713003 (Surgical procedure) for the Procedure (Surgical history) API.\n   * @param patient The Patient FHIR resource ID.\n   * @param subject Subject of the Procedure.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public procedureSearchSurgicalHistoryR4(\n    category?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleProcedureR4>;\n  public procedureSearchSurgicalHistoryR4(\n    category?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleProcedureR4>>;\n  public procedureSearchSurgicalHistoryR4(\n    category?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleProcedureR4>>;\n  public procedureSearchSurgicalHistoryR4(\n    category?: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleProcedureR4>(\n      'get',\n      `${this.basePath}/R4/Procedure`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleBodyStructureR4 } from '../model/bundleBodyStructureR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchToothR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param location Accepts a string for a specific tooth in the patient’s mouth. Format: “[Notation OID]|[tooth ID]”, where “Notation OID” is the OID matching the tooth notation system used to communicate the tooth ID. May send multiple entries separated by commas. Supported notations are Universal (94010), FDI (94011) and Palmer (94013). Ex. “urn:oid:1.2.840.114350.1.13.861.1.7.3.866976.94010|32”\n   * @param morphology Points a search to the correct subresource of tooth. Either “teeth” or “302214001” are accepted. These values are functionally equivalent.\n   * @param patient The patient to search for.\n   * @param subject The patient to search for.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public bodyStructureSearchToothR4(\n    location?: string,\n    morphology?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleBodyStructureR4>;\n  public bodyStructureSearchToothR4(\n    location?: string,\n    morphology?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleBodyStructureR4>>;\n  public bodyStructureSearchToothR4(\n    location?: string,\n    morphology?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleBodyStructureR4>>;\n  public bodyStructureSearchToothR4(\n    location?: string,\n    morphology?: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (location !== undefined && location !== null) {\n      queryParameters = queryParameters.set('location', <any>location);\n    }\n    if (morphology !== undefined && morphology !== null) {\n      queryParameters = queryParameters.set('morphology', <any>morphology);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleBodyStructureR4>(\n      'get',\n      `${this.basePath}/R4/BodyStructure`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleMedicationDispenseR4 } from '../model/bundleMedicationDispenseR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchVerifiedOrdersR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param patient The Patient FHIR ID.\n   * @param subject The Patient FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationDispenseSearchVerifiedOrdersR4(\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleMedicationDispenseR4>;\n  public medicationDispenseSearchVerifiedOrdersR4(\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleMedicationDispenseR4>>;\n  public medicationDispenseSearchVerifiedOrdersR4(\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleMedicationDispenseR4>>;\n  public medicationDispenseSearchVerifiedOrdersR4(\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleMedicationDispenseR4>(\n      'get',\n      `${this.basePath}/R4/MedicationDispense`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleMedicationDispenseSTU3 } from '../model/bundleMedicationDispenseSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchVerifiedOrdersSTU3Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param patient The FHIR Patient ID.\n   * @param subject The FHIR Patient ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public medicationDispenseSearchVerifiedOrdersSTU3(\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleMedicationDispenseSTU3>;\n  public medicationDispenseSearchVerifiedOrdersSTU3(\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleMedicationDispenseSTU3>>;\n  public medicationDispenseSearchVerifiedOrdersSTU3(\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleMedicationDispenseSTU3>>;\n  public medicationDispenseSearchVerifiedOrdersSTU3(\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleMedicationDispenseSTU3>(\n      'get',\n      `${this.basePath}/STU3/MedicationDispense`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleObservationDSTU2 } from '../model/bundleObservationDSTU2';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchVitalsDSTU2Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param id List of Observation Read Ids.\n   * @param category Search for Observation resources for a valid category (vital-signs, social-history, laboratory). Both patient and category (or code) are required for a valid patient-based search.\n   * @param code LOINC code for the type of observation - translated to a flowsheet id by EXM mapping.\n   * @param date Date or date range for which the observation applies.\n   * @param subject FHIR Patient ID\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public observationSearchVitalsDSTU2(\n    id: string,\n    category: string,\n    code?: string,\n    date?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleObservationDSTU2>;\n  public observationSearchVitalsDSTU2(\n    id: string,\n    category: string,\n    code?: string,\n    date?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleObservationDSTU2>>;\n  public observationSearchVitalsDSTU2(\n    id: string,\n    category: string,\n    code?: string,\n    date?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleObservationDSTU2>>;\n  public observationSearchVitalsDSTU2(\n    id: string,\n    category: string,\n    code?: string,\n    date?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (id === null || id === undefined) {\n      throw new Error(\n        'Required parameter id was null or undefined when calling observationSearchVitalsDSTU2.'\n      );\n    }\n\n    if (category === null || category === undefined) {\n      throw new Error(\n        'Required parameter category was null or undefined when calling observationSearchVitalsDSTU2.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (id !== undefined && id !== null) {\n      queryParameters = queryParameters.set('_id', <any>id);\n    }\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (code !== undefined && code !== null) {\n      queryParameters = queryParameters.set('code', <any>code);\n    }\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleObservationDSTU2>(\n      'get',\n      `${this.basePath}/DSTU2/Observation`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleObservationR4 } from '../model/bundleObservationR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchVitalsR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param category Use \\&quot;vital-signs\\&quot; to search for vitals observations. Either this element or code must be provided, but not both.\n   * @param code &lt;p&gt;LOINC code, CADSR code, flowsheet ID, or encoded flowsheet ID. Either this element or category must be provided, but not both.&lt;/p&gt; &lt;p&gt;The code element value varies depending upon what is passed (for example, a flowsheet ID vs. a LOINC code). If using a flowsheet ID, the system value is different between Epic organizations, and it is also different between production and non-production environments for the same organization.&lt;/p&gt;\n   * @param date &lt;p&gt;The date range for when the observation was taken. &lt;p&gt;For growth chart data (Epic version August 2021 and later), only the most recent observation within the timeframe is returned.\n   * @param patient Reference to a patient resource the observation is about. Either this element or subject must be provided. If both are provided, they must match.\n   * @param subject Reference to a patient resource the observation is about. Either this element or patient must be provided. If both are provided, they must match.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public observationSearchVitalsR4(\n    category: string,\n    code: string,\n    date: string,\n    patient: string,\n    subject: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleObservationR4>;\n  public observationSearchVitalsR4(\n    category: string,\n    code: string,\n    date: string,\n    patient: string,\n    subject: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleObservationR4>>;\n  public observationSearchVitalsR4(\n    category: string,\n    code: string,\n    date: string,\n    patient: string,\n    subject: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleObservationR4>>;\n  public observationSearchVitalsR4(\n    category: string,\n    code: string,\n    date: string,\n    patient: string,\n    subject: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (category === null || category === undefined) {\n      throw new Error(\n        'Required parameter category was null or undefined when calling observationSearchVitalsR4.'\n      );\n    }\n\n    if (code === null || code === undefined) {\n      throw new Error(\n        'Required parameter code was null or undefined when calling observationSearchVitalsR4.'\n      );\n    }\n\n    if (date === null || date === undefined) {\n      throw new Error(\n        'Required parameter date was null or undefined when calling observationSearchVitalsR4.'\n      );\n    }\n\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling observationSearchVitalsR4.'\n      );\n    }\n\n    if (subject === null || subject === undefined) {\n      throw new Error(\n        'Required parameter subject was null or undefined when calling observationSearchVitalsR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (code !== undefined && code !== null) {\n      queryParameters = queryParameters.set('code', <any>code);\n    }\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleObservationR4>(\n      'get',\n      `${this.basePath}/R4/Observation`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleObservationSTU3 } from '../model/bundleObservationSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SearchVitalsSTU3Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param category Use \\&quot;vital-signs\\&quot; to search for vitals observations. Either this element or code must be provided, but not both.\n   * @param code &lt;p&gt;LOINC code, CADSR code, or encoded flowsheet ID. Either this element or category must be provided, but not both.&lt;/p&gt; &lt;p&gt;The code element value varies depending upon what is passed (for example, a flowsheet ID vs. a LOINC code). If using a flowsheet ID, the system value is different between Epic organizations, and it is also different between production and non-production environments for the same organization.&lt;/p&gt;\n   * @param patient Reference to a patient resource the observation is about. Either this element or subject must be provided. If both are provided, they must match.\n   * @param subject Reference to a patient resource the observation is about. Either this element or patient must be provided. If both are provided, they must match.\n   * @param date The date range for when the observation was taken.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public observationSearchVitalsSTU3(\n    category: string,\n    code: string,\n    patient: string,\n    subject: string,\n    date?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleObservationSTU3>;\n  public observationSearchVitalsSTU3(\n    category: string,\n    code: string,\n    patient: string,\n    subject: string,\n    date?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleObservationSTU3>>;\n  public observationSearchVitalsSTU3(\n    category: string,\n    code: string,\n    patient: string,\n    subject: string,\n    date?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleObservationSTU3>>;\n  public observationSearchVitalsSTU3(\n    category: string,\n    code: string,\n    patient: string,\n    subject: string,\n    date?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (category === null || category === undefined) {\n      throw new Error(\n        'Required parameter category was null or undefined when calling observationSearchVitalsSTU3.'\n      );\n    }\n\n    if (code === null || code === undefined) {\n      throw new Error(\n        'Required parameter code was null or undefined when calling observationSearchVitalsSTU3.'\n      );\n    }\n\n    if (patient === null || patient === undefined) {\n      throw new Error(\n        'Required parameter patient was null or undefined when calling observationSearchVitalsSTU3.'\n      );\n    }\n\n    if (subject === null || subject === undefined) {\n      throw new Error(\n        'Required parameter subject was null or undefined when calling observationSearchVitalsSTU3.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (code !== undefined && code !== null) {\n      queryParameters = queryParameters.set('code', <any>code);\n    }\n    if (date !== undefined && date !== null) {\n      queryParameters = queryParameters.set('date', <any>date);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleObservationSTU3>(\n      'get',\n      `${this.basePath}/STU3/Observation`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleServiceRequestR4 } from '../model/bundleServiceRequestR4';\nimport { ServiceRequestR4 } from '../model/serviceRequestR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ServiceRequestService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR ServiceRequest ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public serviceRequestReadReferralR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ServiceRequestR4>;\n  public serviceRequestReadReferralR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ServiceRequestR4>>;\n  public serviceRequestReadReferralR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ServiceRequestR4>>;\n  public serviceRequestReadReferralR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling serviceRequestReadReferralR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ServiceRequestR4>(\n      'get',\n      `${this.basePath}/R4/ServiceRequest/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param category &lt;p&gt;Set category to the following token construction: system | code, where:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;system: “http://snomed.info/sct”&lt;/li&gt; &lt;li&gt;code: “307835004”&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;The code SCTID: 307835004 represents the  ‘Referral by service’, in order to find CRRN type of ServiceRequests. Either the patient, subject, or encounter must be provided.&lt;/p&gt;\n   * @param encounter Reference to an Encounter resource the procedure request is in.\n   * @param onlyscannable If “true”,  only scannable orders and procedures are returned in the response. This feature requires a user to have login department context as part of the API request, otherwise error code 59100 is returned.\n   * @param patient Reference to a patient resource for which the request is ordered.\n   * @param requester Reference to a practitioner resource who is the authorizing provider for the procedure request.\n   * @param status &lt;p&gt;The status of the request. Supported values include:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;draft&lt;/li&gt; &lt;li&gt;active&lt;/li&gt; &lt;li&gt;completed&lt;/li&gt; &lt;li&gt;revoked&lt;/li&gt; &lt;li&gt; unknown&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;This service returns all statuses if this element is not specified.&lt;/p&gt;\n   * @param subject Reference to a patient resource for which the request is ordered.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public serviceRequestSearchOrdersR4(\n    category: string,\n    encounter?: string,\n    onlyscannable?: string,\n    patient?: string,\n    requester?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleServiceRequestR4>;\n  public serviceRequestSearchOrdersR4(\n    category: string,\n    encounter?: string,\n    onlyscannable?: string,\n    patient?: string,\n    requester?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleServiceRequestR4>>;\n  public serviceRequestSearchOrdersR4(\n    category: string,\n    encounter?: string,\n    onlyscannable?: string,\n    patient?: string,\n    requester?: string,\n    status?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleServiceRequestR4>>;\n  public serviceRequestSearchOrdersR4(\n    category: string,\n    encounter?: string,\n    onlyscannable?: string,\n    patient?: string,\n    requester?: string,\n    status?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (category === null || category === undefined) {\n      throw new Error(\n        'Required parameter category was null or undefined when calling serviceRequestSearchOrdersR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (category !== undefined && category !== null) {\n      queryParameters = queryParameters.set('category', <any>category);\n    }\n    if (encounter !== undefined && encounter !== null) {\n      queryParameters = queryParameters.set('encounter', <any>encounter);\n    }\n    if (onlyscannable !== undefined && onlyscannable !== null) {\n      queryParameters = queryParameters.set(\n        'onlyscannable',\n        <any>onlyscannable\n      );\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (requester !== undefined && requester !== null) {\n      queryParameters = queryParameters.set('requester', <any>requester);\n    }\n    if (status !== undefined && status !== null) {\n      queryParameters = queryParameters.set('status', <any>status);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleServiceRequestR4>(\n      'get',\n      `${this.basePath}/R4/ServiceRequest`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { SlotSTU3 } from '../model/slotSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SlotService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR identifier for a Slot resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public slotReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<SlotSTU3>;\n  public slotReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<SlotSTU3>>;\n  public slotReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<SlotSTU3>>;\n  public slotReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling slotReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<SlotSTU3>(\n      'get',\n      `${this.basePath}/STU3/Slot/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleSpecimenR4 } from '../model/bundleSpecimenR4';\nimport { BundleSpecimenSTU3 } from '../model/bundleSpecimenSTU3';\nimport { SpecimenR4 } from '../model/specimenR4';\nimport { SpecimenSTU3 } from '../model/specimenSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SpecimenService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID The Specimen FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public specimenReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<SpecimenR4>;\n  public specimenReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<SpecimenR4>>;\n  public specimenReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<SpecimenR4>>;\n  public specimenReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling specimenReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<SpecimenR4>(\n      'get',\n      `${this.basePath}/R4/Specimen/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param ID The specimen’s FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public specimenReadSTU3(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<SpecimenSTU3>;\n  public specimenReadSTU3(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<SpecimenSTU3>>;\n  public specimenReadSTU3(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<SpecimenSTU3>>;\n  public specimenReadSTU3(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling specimenReadSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<SpecimenSTU3>(\n      'get',\n      `${this.basePath}/STU3/Specimen/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public specimenSearchR4(\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleSpecimenR4>;\n  public specimenSearchR4(\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleSpecimenR4>>;\n  public specimenSearchR4(\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleSpecimenR4>>;\n  public specimenSearchR4(\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleSpecimenR4>(\n      'get',\n      `${this.basePath}/R4/Specimen`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public specimenSearchSTU3(\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleSpecimenSTU3>;\n  public specimenSearchSTU3(\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleSpecimenSTU3>>;\n  public specimenSearchSTU3(\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleSpecimenSTU3>>;\n  public specimenSearchSTU3(\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleSpecimenSTU3>(\n      'get',\n      `${this.basePath}/STU3/Specimen`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleSubstanceR4 } from '../model/bundleSubstanceR4';\nimport { SubstanceR4 } from '../model/substanceR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class SubstanceService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR identifier for a Substance resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public substanceReadR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<SubstanceR4>;\n  public substanceReadR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<SubstanceR4>>;\n  public substanceReadR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<SubstanceR4>>;\n  public substanceReadR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling substanceReadR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<SubstanceR4>(\n      'get',\n      `${this.basePath}/R4/Substance/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public substanceSearchR4(\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleSubstanceR4>;\n  public substanceSearchR4(\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleSubstanceR4>>;\n  public substanceSearchR4(\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleSubstanceR4>>;\n  public substanceSearchR4(\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleSubstanceR4>(\n      'get',\n      `${this.basePath}/R4/Substance`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { BundleTaskR4 } from '../model/bundleTaskR4';\nimport { TaskR4 } from '../model/taskR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class TaskService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param ID FHIR identifier for a Task resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public taskReadCommunityResourceR4(\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<TaskR4>;\n  public taskReadCommunityResourceR4(\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<TaskR4>>;\n  public taskReadCommunityResourceR4(\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<TaskR4>>;\n  public taskReadCommunityResourceR4(\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling taskReadCommunityResourceR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<TaskR4>(\n      'get',\n      `${this.basePath}/R4/Task/${encodeURIComponent(String(ID))}`,\n      {\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param code Search for “community-resource” type of tasks only. This corresponds to Community Resource Tasks and is used to refine to only such Tasks. If not specified, all valid Task resources/subresources are returned.\n   * @param encounter Reference to the encounter that the Task  belongs to.\n   * @param patient Search for Task resources for a specified patient ID. You can use both \\&quot;patient\\&quot; and \\&quot;subject\\&quot;, but if you use both they must look to the same value.\n   * @param subject Search for Task resources for a specified subject. You can use both \\&quot;patient\\&quot; and \\&quot;subject\\&quot;, but if you use both they must look to the same value.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public taskSearchCommunityResourceR4(\n    code?: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<BundleTaskR4>;\n  public taskSearchCommunityResourceR4(\n    code?: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<BundleTaskR4>>;\n  public taskSearchCommunityResourceR4(\n    code?: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<BundleTaskR4>>;\n  public taskSearchCommunityResourceR4(\n    code?: string,\n    encounter?: string,\n    patient?: string,\n    subject?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (code !== undefined && code !== null) {\n      queryParameters = queryParameters.set('code', <any>code);\n    }\n    if (encounter !== undefined && encounter !== null) {\n      queryParameters = queryParameters.set('encounter', <any>encounter);\n    }\n    if (patient !== undefined && patient !== null) {\n      queryParameters = queryParameters.set('patient', <any>patient);\n    }\n    if (subject !== undefined && subject !== null) {\n      queryParameters = queryParameters.set('subject', <any>subject);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<BundleTaskR4>(\n      'get',\n      `${this.basePath}/R4/Task`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n\n  /**\n   *\n   *\n   * @param body payload\n   * @param ID FHIR identifier for a Task resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public taskUpdateCommunityResourceR4(\n    body: TaskR4,\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<TaskR4>;\n  public taskUpdateCommunityResourceR4(\n    body: TaskR4,\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<TaskR4>>;\n  public taskUpdateCommunityResourceR4(\n    body: TaskR4,\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<TaskR4>>;\n  public taskUpdateCommunityResourceR4(\n    body: TaskR4,\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (body === null || body === undefined) {\n      throw new Error(\n        'Required parameter body was null or undefined when calling taskUpdateCommunityResourceR4.'\n      );\n    }\n\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling taskUpdateCommunityResourceR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = ['application/json'];\n    const httpContentTypeSelected: string | undefined =\n      this.configuration.selectHeaderContentType(consumes);\n    if (httpContentTypeSelected != undefined) {\n      headers = headers.set('Content-Type', httpContentTypeSelected);\n    }\n\n    return this.httpClient.request<TaskR4>(\n      'put',\n      `${this.basePath}/R4/Task/${encodeURIComponent(String(ID))}`,\n      {\n        body: body,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { TaskR4 } from '../model/taskR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class UpdateCommunityResourceR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param body payload\n   * @param ID FHIR identifier for a Task resource.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public taskUpdateCommunityResourceR4(\n    body: TaskR4,\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<TaskR4>;\n  public taskUpdateCommunityResourceR4(\n    body: TaskR4,\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<TaskR4>>;\n  public taskUpdateCommunityResourceR4(\n    body: TaskR4,\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<TaskR4>>;\n  public taskUpdateCommunityResourceR4(\n    body: TaskR4,\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (body === null || body === undefined) {\n      throw new Error(\n        'Required parameter body was null or undefined when calling taskUpdateCommunityResourceR4.'\n      );\n    }\n\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling taskUpdateCommunityResourceR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = ['application/json'];\n    const httpContentTypeSelected: string | undefined =\n      this.configuration.selectHeaderContentType(consumes);\n    if (httpContentTypeSelected != undefined) {\n      headers = headers.set('Content-Type', httpContentTypeSelected);\n    }\n\n    return this.httpClient.request<TaskR4>(\n      'put',\n      `${this.basePath}/R4/Task/${encodeURIComponent(String(ID))}`,\n      {\n        body: body,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { ObservationR4 } from '../model/observationR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class UpdateLDAWR4Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param body payload\n   * @param ID The observation FHIR ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public observationUpdateLDAWR4(\n    body: ObservationR4,\n    ID: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ObservationR4>;\n  public observationUpdateLDAWR4(\n    body: ObservationR4,\n    ID: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ObservationR4>>;\n  public observationUpdateLDAWR4(\n    body: ObservationR4,\n    ID: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ObservationR4>>;\n  public observationUpdateLDAWR4(\n    body: ObservationR4,\n    ID: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (body === null || body === undefined) {\n      throw new Error(\n        'Required parameter body was null or undefined when calling observationUpdateLDAWR4.'\n      );\n    }\n\n    if (ID === null || ID === undefined) {\n      throw new Error(\n        'Required parameter ID was null or undefined when calling observationUpdateLDAWR4.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = ['application/json'];\n    const httpContentTypeSelected: string | undefined =\n      this.configuration.selectHeaderContentType(consumes);\n    if (httpContentTypeSelected != undefined) {\n      headers = headers.set('Content-Type', httpContentTypeSelected);\n    }\n\n    return this.httpClient.request<ObservationR4>(\n      'put',\n      `${this.basePath}/R4/Observation/${encodeURIComponent(String(ID))}`,\n      {\n        body: body,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { ObservationSTU3 } from '../model/observationSTU3';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class UpdateLDAWSTU3Service {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param body payload\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public observationUpdateLDAWSTU3(\n    body: ObservationSTU3,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ObservationSTU3>;\n  public observationUpdateLDAWSTU3(\n    body: ObservationSTU3,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ObservationSTU3>>;\n  public observationUpdateLDAWSTU3(\n    body: ObservationSTU3,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ObservationSTU3>>;\n  public observationUpdateLDAWSTU3(\n    body: ObservationSTU3,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (body === null || body === undefined) {\n      throw new Error(\n        'Required parameter body was null or undefined when calling observationUpdateLDAWSTU3.'\n      );\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = ['application/json'];\n    const httpContentTypeSelected: string | undefined =\n      this.configuration.selectHeaderContentType(consumes);\n    if (httpContentTypeSelected != undefined) {\n      headers = headers.set('Content-Type', httpContentTypeSelected);\n    }\n\n    return this.httpClient.request<ObservationSTU3>(\n      'put',\n      `${this.basePath}/STU3/Observation`,\n      {\n        body: body,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */ /* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n} from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\n\nimport { Observable } from 'rxjs';\n\nimport { ValueSetR4 } from '../model/valueSetR4';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n@Injectable()\nexport class ValueSetService {\n  protected basePath = 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (basePath) {\n      this.basePath = basePath;\n    }\n    if (configuration) {\n      this.configuration = configuration;\n      this.basePath = basePath || configuration.basePath || this.basePath;\n    }\n  }\n\n  /**\n   * @param consumes string[] mime-types\n   * @return true: consumes contains 'multipart/form-data', false: otherwise\n   */\n  private canConsumeForm(consumes: string[]): boolean {\n    const form = 'multipart/form-data';\n    for (const consume of consumes) {\n      if (form === consume) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   *\n   *\n   * @param context &lt;p&gt;The path to the element in the resource.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Expected format: &amp;lt;ResourceName&amp;gt;.&amp;lt;ElementPath&amp;gt;&lt;/li&gt; &lt;li&gt;Example: DocumentReference.type&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;Epic currently supports the following contexts:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;DocumentReference.type&lt;/li&gt; &lt;li&gt;DocumentReference.docStatus&lt;/li&gt; &lt;/ul&gt;\n   * @param contextdirection &lt;p&gt;Specifies the direction of the interaction with regards to the ValueSet. Options include \\&quot;outgoing\\&quot; or \\&quot;incoming\\&quot;. &lt;/p&gt; &lt;ul&gt; &lt;li&gt;outgoing - for query parameters and response content&lt;/li&gt; &lt;li&gt;incoming - for incoming POST/PUT body&lt;/li&gt; &lt;/ul&gt;\n   * @param filter &lt;p&gt;A filter string used to further refine the ValueSet context to a specific sub-resource based on the resource&#x27;s category element, and in some cases, additional details.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Example: &lt;code&gt;filter&#x3D;category:document-information,workflow:registration, level:encounter,resource:ej5R7X.4RdaFNR5vWdsTpVTtccmkRkWJcKixc5XVY4cQ3&lt;/code&gt; &lt;/ul&gt; &lt;p&gt;Epic currently supports the following filters:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;code&gt;category:clinical-note&lt;/code&gt; &lt;li&gt;&lt;code&gt;category:document-information&lt;/code&gt; &lt;/ul&gt; &lt;p&gt;The following additional filters can be combined with &lt;code&gt;category:document-information&lt;/code&gt; to further refine results:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;code&gt;workflow:general&lt;/code&gt;&lt;/li&gt; &lt;li&gt;&lt;code&gt;workflow:registration&lt;/code&gt;&lt;/li&gt; &lt;li&gt;&lt;code&gt;level:patient&lt;/code&gt;&lt;/li&gt; &lt;li&gt;&lt;code&gt;level:encounter&lt;/code&gt;&lt;/li&gt; &lt;li&gt;&lt;code&gt;level:order&lt;/code&gt;&lt;/li&gt; &lt;li&gt;&lt;code&gt;resource:&amp;lt;patient FHIR ID&amp;gt;&lt;/code&gt;&lt;/li&gt; &lt;li&gt;&lt;code&gt;resource:&amp;lt;encounter FHIR ID&amp;gt;&lt;/code&gt;&lt;/li&gt; &lt;/ul&gt;\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public valueSetexpandR4(\n    context: string,\n    contextdirection: string,\n    filter?: string,\n    observe?: 'body',\n    reportProgress?: boolean\n  ): Observable<ValueSetR4>;\n  public valueSetexpandR4(\n    context: string,\n    contextdirection: string,\n    filter?: string,\n    observe?: 'response',\n    reportProgress?: boolean\n  ): Observable<HttpResponse<ValueSetR4>>;\n  public valueSetexpandR4(\n    context: string,\n    contextdirection: string,\n    filter?: string,\n    observe?: 'events',\n    reportProgress?: boolean\n  ): Observable<HttpEvent<ValueSetR4>>;\n  public valueSetexpandR4(\n    context: string,\n    contextdirection: string,\n    filter?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false\n  ): Observable<any> {\n    if (context === null || context === undefined) {\n      throw new Error(\n        'Required parameter context was null or undefined when calling valueSetexpandR4.'\n      );\n    }\n\n    if (contextdirection === null || contextdirection === undefined) {\n      throw new Error(\n        'Required parameter contextdirection was null or undefined when calling valueSetexpandR4.'\n      );\n    }\n\n    let queryParameters = new HttpParams({\n      encoder: new CustomHttpUrlEncodingCodec(),\n    });\n    if (context !== undefined && context !== null) {\n      queryParameters = queryParameters.set('context', <any>context);\n    }\n    if (contextdirection !== undefined && contextdirection !== null) {\n      queryParameters = queryParameters.set(\n        'contextdirection',\n        <any>contextdirection\n      );\n    }\n    if (filter !== undefined && filter !== null) {\n      queryParameters = queryParameters.set('filter', <any>filter);\n    }\n\n    let headers = this.defaultHeaders;\n\n    // authentication (bearer_auth) required\n    if (\n      this.configuration.apiKeys &&\n      this.configuration.apiKeys['Authorization']\n    ) {\n      headers = headers.set(\n        'Authorization',\n        this.configuration.apiKeys['Authorization']\n      );\n    }\n\n    // to determine the Accept header\n    let httpHeaderAccepts: string[] = ['application/json'];\n    const httpHeaderAcceptSelected: string | undefined =\n      this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    if (httpHeaderAcceptSelected != undefined) {\n      headers = headers.set('Accept', httpHeaderAcceptSelected);\n    }\n\n    // to determine the Content-Type header\n    const consumes: string[] = [];\n\n    return this.httpClient.request<ValueSetR4>(\n      'get',\n      `${this.basePath}/R4/ValueSet/$expand`,\n      {\n        params: queryParameters,\n        withCredentials: this.configuration.withCredentials,\n        headers: headers,\n        observe: observe,\n        reportProgress: reportProgress,\n      }\n    );\n  }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class LocalStorageService {\n  get<T>(key: string) {\n    const val = localStorage.getItem(key);\n    if (!val) {\n      return null;\n    }\n    return JSON.parse(val) as T;\n  }\n  set<T>(key: string, val: T) {\n    localStorage.setItem(key, JSON.stringify(val));\n  }\n  delete(key: string) {\n    localStorage.removeItem(key);\n  }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport { NonEmbeddedAuthModalComponent } from '../components/non-embedded-auth-modal/non-embedded-auth-modal.component';\nimport { Configuration } from '../configuration';\nimport {\n  CapabilityStatement,\n  EpicOAuthToken,\n  BundleEndpointR4,\n  EndpointR4,\n} from '../model';\nimport { BASE_URL_STORAGE_KEY, TOKEN_STORAGE_KEY } from '../variables';\nimport { LocalStorageService } from './localStorage.service';\nimport { ModalService } from './modal.service';\n\n@Injectable()\nexport class OAuthService {\n  authorizerUrl: string | undefined;\n  tokenUrl: string | undefined;\n  baseUrl: string | null = null;\n  token: EpicOAuthToken | undefined;\n  constructor(\n    private readonly httpClient: HttpClient,\n    private readonly configuration: Configuration,\n    private readonly storage: LocalStorageService\n  ) {}\n\n  get oAuthToken() {\n    return this.token as EpicOAuthToken;\n  }\n\n  async checkRunAuthWorkflow() {\n    let storedToken = this.storage.get<EpicOAuthToken>(TOKEN_STORAGE_KEY);\n    // First is this an embedded Launch?\n    if (!!this.configuration.launchCode) {\n      this.storage.delete(TOKEN_STORAGE_KEY);\n      await this.redirectToAuthEndpoint(true);\n    }\n\n    // is this a redirect from the auth endpoint\n    else if (!!this.configuration.authCode) {\n      this.tokenUrl = this.configuration.authCodeState;\n      this.baseUrl = this.storage.get<string>(BASE_URL_STORAGE_KEY);\n      if (!!storedToken) {\n        console.log(`Found Existing Token!`);\n        if (this.isTokenStillValid(storedToken)) {\n          console.log(`Existing Token is Valid`);\n          this.token = storedToken;\n        } else {\n          console.log(`Existing Token has expired`);\n          this.storage.delete(TOKEN_STORAGE_KEY);\n          this.token = undefined;\n        }\n      } else {\n        console.log('No Stored Token Found!');\n      }\n      if (!this.token) {\n        await this.callTokenEndpoint();\n        storedToken = this.storage.get<EpicOAuthToken>(TOKEN_STORAGE_KEY);\n      }\n      this.updateConfiguration();\n    }\n    // Finally Enter the Auth flow when working with Standalone Launch\n    else if (!storedToken || !this.isTokenStillValid(storedToken)) {\n      this.storage.delete(TOKEN_STORAGE_KEY);\n      const chosenEndpoint = await this.runFhirServerPrompt();\n      this.configuration.issUrl = chosenEndpoint?.address?.endsWith('/')\n        ? chosenEndpoint?.address?.slice(0, -1)\n        : chosenEndpoint?.address;\n      await this.redirectToAuthEndpoint(false);\n    }\n    // This is a standalone launch with a token that is still good.\n    else {\n      this.token = storedToken;\n      this.baseUrl = this.storage.get<string>(BASE_URL_STORAGE_KEY);\n      this.updateConfiguration();\n    }\n  }\n\n  private async runFhirServerPrompt() {\n    const serverName = prompt(\n      'Which Epic Fhir Server do you wish to connect to?'\n    );\n    const r4EndpointsBundle = await firstValueFrom(\n      this.httpClient.get<BundleEndpointR4>(\n        'https://open.epic.com/Endpoints/R4'\n      )\n    );\n    const r4Endpoints: EndpointR4[] = r4EndpointsBundle.entry\n      ?.filter((x) => !!x.resource)\n      .map((x) => x.resource) as any;\n    r4Endpoints.push({\n      address: 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR/R4',\n      connectionType: 'direct-project',\n      name: 'Epic Test Server (R4)',\n      payloadMimeType: 'application/json',\n      status: 'active',\n    });\n    const response = r4Endpoints.find((x) => x.name === serverName);\n    if (!response) {\n      console.log(`Unable to find Fhir server matching name ${serverName}`);\n    }\n    return response;\n  }\n\n  // private async runFhirServerModal() {\n  //   const modalContext = this.modalService.present(\n  //     NonEmbeddedAuthModalComponent,\n  //     { isDismissed: false }\n  //   );\n  //   const modalComponent = modalContext.instance;\n  //   const chosenEndpoint = await new Promise<EndpointR4>(async (res) => {\n  //     while (!modalComponent.isDismissed) {\n  //       await new Promise((ares) => setTimeout(() => ares(null), 200));\n  //     }\n  //     res(modalComponent.validR4Endpoint as EndpointR4);\n  //   });\n  //   this.modalService.dismiss(modalContext.domElem);\n  //   return chosenEndpoint;\n  // }\n\n  private async redirectToAuthEndpoint(isEmbedded: boolean) {\n    console.log(\n      `Making initial request against EPIC ISS Endpoint ${\n        this.configuration.issUrl ?? 'unknown'\n      } with Epic Client ID: ${this.configuration.epicClientId}`\n    );\n    let baseUrlKey = this.configuration?.issUrl?.endsWith('/')\n      ? this.configuration?.issUrl.slice(0, -1)\n      : this.configuration?.issUrl;\n    baseUrlKey = baseUrlKey?.replace('/DSTU2', '').replace('/R4', '');\n    this.storage.set(BASE_URL_STORAGE_KEY, baseUrlKey);\n    const capabilityStatement = await this.getCapabilityStatement();\n    const urlSegments = capabilityStatement.rest\n      .find((x) => !!x)\n      ?.security?.extension.find((x) => !!x)?.extension;\n    this.authorizerUrl = urlSegments?.find(\n      (x) => x.url === 'authorize'\n    )?.valueUri;\n    this.tokenUrl = urlSegments?.find((x) => x.url === 'token')?.valueUri;\n    console.log(\n      `Found tokenUrl: ${this.tokenUrl ?? 'unknown'} and authorizerUrl ${\n        this.authorizerUrl\n      } from capabilityStatement.`\n    );\n    await this.callAuthEndpoint(isEmbedded);\n  }\n\n  callAuthEndpoint(isEmbeddedApp: boolean) {\n    const params: { [key: string]: string } = {\n      scope: isEmbeddedApp ? 'launch' : 'openid',\n      response_type: 'code',\n      redirect_uri: encodeURIComponent(this.configuration.redirectUri),\n      client_id: this.configuration.epicClientId,\n      state: this.tokenUrl ?? '',\n      aud: this.configuration.issUrl ?? '',\n    };\n    if (isEmbeddedApp) {\n      params['launch'] = this.configuration.launchCode ?? '';\n    }\n    let queryParams = '';\n    let paramsArray = [];\n    for (const key of Object.keys(params)) {\n      const val = params[key];\n      paramsArray.push(`${key}=${val}`);\n    }\n    queryParams = paramsArray.join('&');\n    window.location.assign(`${this.authorizerUrl}?${queryParams}`);\n  }\n\n  getCapabilityStatement() {\n    return firstValueFrom(\n      this.httpClient.get<CapabilityStatement>(\n        `${this.configuration.issUrl}/metadata`,\n        {\n          headers: this.getHeaders({\n            'Epic-Client-ID': this.configuration.epicClientId ?? '',\n            Accept: 'application/json',\n          }),\n        }\n      )\n    );\n  }\n\n  async callTokenEndpoint() {\n    const params = new URLSearchParams();\n    params.append('grant_type', 'authorization_code');\n    params.append('code', `${this.configuration.authCode}`);\n    params.append('redirect_uri', `${this.configuration.redirectUri}`);\n    params.append('client_id', `${this.configuration.epicClientId}`);\n    this.token = await firstValueFrom(\n      this.httpClient.post<EpicOAuthToken>(`${this.tokenUrl}`, params, {\n        headers: this.getHeaders({\n          'Content-Type': 'application/x-www-form-urlencoded',\n        }),\n      })\n    );\n    this.token.expires_at = this.getTokenExpiry(this.token);\n    this.storage.set(TOKEN_STORAGE_KEY, this.token);\n    console.log(`Received Token ${JSON.stringify(this.token)}`);\n  }\n\n  updateConfiguration() {\n    if (!this.configuration.apiKeys) {\n      this.configuration.apiKeys = {\n        Authorization: `Bearer ${this.token?.access_token}`,\n      };\n    } else {\n      this.configuration.apiKeys[\n        'Authorization'\n      ] = `Bearer ${this.token?.access_token}`;\n    }\n    this.configuration.basePath = this.baseUrl ?? undefined;\n  }\n\n  getHeaders(additionalHeaders: { [key: string]: string }) {\n    return {\n      Accept: 'application/json',\n      ...additionalHeaders,\n    };\n  }\n  getTokenExpiry(token: EpicOAuthToken) {\n    const expiryDate = new Date();\n    expiryDate.setSeconds(expiryDate.getSeconds() + token.expires_in);\n    return expiryDate.getTime();\n  }\n  isTokenStillValid(token: EpicOAuthToken) {\n    const instant = new Date().getTime();\n    console.log(`Now: ${instant} | Token Expires: ${token.expires_at}`);\n    return instant < token?.expires_at ?? instant;\n  }\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n  ApplicationRef,\n  ComponentFactoryResolver,\n  EmbeddedViewRef,\n  Inject,\n  Injectable,\n  Injector,\n  Type,\n  ViewContainerRef,\n} from '@angular/core';\n\n@Injectable()\nexport class ModalService {\n  constructor(\n    @Inject(DOCUMENT) private readonly document: Document,\n    private readonly componentFactoryResolver: ComponentFactoryResolver,\n    private readonly injector: Injector,\n    private readonly applicationRef: ApplicationRef\n  ) {}\n\n  present<T>(componentSymbol: Type<T>, componentProperties: Partial<T>) {\n    const componentRef = this.componentFactoryResolver\n      .resolveComponentFactory(componentSymbol)\n      .create(this.injector);\n    this.applicationRef.attachView(componentRef.hostView);\n    const domElem = (componentRef.hostView as EmbeddedViewRef<any>)\n      .rootNodes[0] as HTMLElement;\n\n    Object.keys(componentProperties).forEach(\n      (key) =>\n        ((componentRef.instance as any)[key] = (componentProperties as any)[\n          key\n        ])\n    );\n\n    this.document.body.appendChild(domElem);\n    const dialog = this.document.getElementById(\n      'serverModal'\n    ) as HTMLDialogElement;\n    (dialog as any).showModal();\n    return {\n      domElem,\n      instance: componentRef.instance,\n    };\n  }\n\n  dismiss(domElem: HTMLElement) {\n    domElem?.remove();\n  }\n}\n","import { OAuthService } from './services';\n\nexport function appInitializerFactory(service: OAuthService): () => void {\n  return () => service.checkRunAuthWorkflow();\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Component, OnInit } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport {\n  BundleEndpointDSTU2,\n  BundleEndpointR4,\n  EndpointR4,\n  EndpointSTU3,\n} from '../../model';\n\n@Component({\n  selector: 'app-lib-non-embedded-auth-modal',\n  templateUrl: './non-embedded-auth-modal.component.html',\n  styleUrls: ['./non-embedded-auth-modal.component.css'],\n})\nexport class NonEmbeddedAuthModalComponent implements OnInit {\n  dstu2Endpoints: EndpointSTU3[] = [];\n  r4Endpoints: EndpointR4[] = [];\n  validR4Endpoint: EndpointR4 | null = null;\n  isDismissed = false;\n  constructor(private readonly httpClient: HttpClient) {}\n\n  async ngOnInit() {\n    const dstu2EndpointsBundle = await firstValueFrom(\n      this.httpClient.get<BundleEndpointDSTU2>(\n        'https://open.epic.com/Endpoints/DSTU2'\n      )\n    );\n    const r4EndpointsBundle = await firstValueFrom(\n      this.httpClient.get<BundleEndpointR4>(\n        'https://open.epic.com/Endpoints/R4'\n      )\n    );\n    this.dstu2Endpoints = dstu2EndpointsBundle.entry\n      ?.filter((x) => !!x.resource)\n      .map((x) => x.resource) as any;\n    this.r4Endpoints = r4EndpointsBundle.entry\n      ?.filter((x) => !!x.resource)\n      .map((x) => x.resource) as any;\n    this.r4Endpoints.push({\n      address: 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR/R4',\n      connectionType: 'direct-project',\n      name: 'Epic Test Server (R4)',\n      payloadMimeType: 'application/json',\n      status: 'active',\n    });\n\n    this.dstu2Endpoints.push({\n      address: 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR/DSTU2',\n      connectionType: 'direct-project',\n      name: 'Epic Test Server (DSTU2)',\n      payloadMimeType: 'application/json',\n      status: 'active',\n    });\n  }\n\n  dismiss() {\n    this.isDismissed = true;\n  }\n}\n","<dialog id=\"serverModal\">\n  <div class=\"modal-header\">\n    <h4 class=\"modal-title\" id=\"modal-basic-title\">EPIC Server Selection</h4>\n    <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"dismiss()\">Exit</button>\n  </div>\n  <div class=\"modal-body\">\n    <form>\n      <div class=\"mb-3\">\n        <label for=\"FhirRevision4Server\">R4 Server</label>\n        <select name=\"FhirRevision4Server\" id=\"FhirRevision4Server\" [(ngModel)]=\"validR4Endpoint\">\n        <option *ngFor=\"let endpoint of r4Endpoints\"[ngValue]=\"endpoint\">\n          {{ endpoint.name }}\n        </option>\n      </select>\n      </div>\n    </form>\n  </div>\n  <div class=\"modal-footer\">\n    <button type=\"button\" class=\"btn btn-outline-dark\" (click)=\"dismiss()\">Proceed</button>\n  </div>\n</dialog>","import {\n  NgModule,\n  ModuleWithProviders,\n  SkipSelf,\n  Optional,\n  APP_INITIALIZER,\n} from '@angular/core';\nimport { Configuration, ConfigurationParameters } from './configuration';\nimport { HttpClient } from '@angular/common/http';\n\nimport { AdverseEventService } from './api/adverseEvent.service';\nimport { AllergyIntoleranceService } from './api/allergyIntolerance.service';\nimport { AppointmentService } from './api/appointment.service';\nimport { BinaryService } from './api/binary.service';\nimport { BodyStructureService } from './api/bodyStructure.service';\nimport { CarePlanService } from './api/carePlan.service';\nimport { CareTeamService } from './api/careTeam.service';\nimport { CommunicationService } from './api/communication.service';\nimport { ConditionService } from './api/condition.service';\nimport { ConsentService } from './api/consent.service';\nimport { CoverageService } from './api/coverage.service';\nimport { CreateClinicalNotesSTU3Service } from './api/createClinicalNotesSTU3.service';\nimport { CreateCommunityResourceR4Service } from './api/createCommunityResourceR4.service';\nimport { CreatePatientEnteredQuestionnairesR4Service } from './api/createPatientEnteredQuestionnairesR4.service';\nimport { CreatePatientSTU3Service } from './api/createPatientSTU3.service';\nimport { CreateProblemsR4Service } from './api/createProblemsR4.service';\nimport { CreateProblemsSTU3Service } from './api/createProblemsSTU3.service';\nimport { CreateR4Service } from './api/createR4.service';\nimport { CreateSTU3Service } from './api/createSTU3.service';\nimport { CreateVitalsR4Service } from './api/createVitalsR4.service';\nimport { CreateVitalsSTU3Service } from './api/createVitalsSTU3.service';\nimport { DeviceService } from './api/device.service';\nimport { DeviceRequestService } from './api/deviceRequest.service';\nimport { DeviceUseStatementService } from './api/deviceUseStatement.service';\nimport { DiagnosticReportService } from './api/diagnosticReport.service';\nimport { DocumentReferenceService } from './api/documentReference.service';\nimport { EncounterService } from './api/encounter.service';\nimport { EndpointService } from './api/endpoint.service';\nimport { EpisodeOfCareService } from './api/episodeOfCare.service';\nimport { ExpandR4Service } from './api/expandR4.service';\nimport { ExplanationOfBenefitService } from './api/explanationOfBenefit.service';\nimport { FamilyMemberHistoryService } from './api/familyMemberHistory.service';\nimport { FlagService } from './api/flag.service';\nimport { GoalService } from './api/goal.service';\nimport { ImmunizationService } from './api/immunization.service';\nimport { ImmunizationRecommendationService } from './api/immunizationRecommendation.service';\nimport { LastnSocialHistorySTU3Service } from './api/lastnSocialHistorySTU3.service';\nimport { ListService } from './api/list.service';\nimport { LocationService } from './api/location.service';\nimport { MedicationService } from './api/medication.service';\nimport { MedicationDispenseService } from './api/medicationDispense.service';\nimport { MedicationOrderService } from './api/medicationOrder.service';\nimport { MedicationRequestService } from './api/medicationRequest.service';\nimport { MedicationStatementService } from './api/medicationStatement.service';\nimport { NutritionOrderService } from './api/nutritionOrder.service';\nimport { ObservationService } from './api/observation.service';\nimport { OrganizationService } from './api/organization.service';\nimport { PatientService } from './api/patient.service';\nimport { PractitionerService } from './api/practitioner.service';\nimport { PractitionerRoleService } from './api/practitionerRole.service';\nimport { ProcedureService } from './api/procedure.service';\nimport { ProcedureRequestService } from './api/procedureRequest.service';\nimport { ProvenanceService } from './api/provenance.service';\nimport { QuestionnaireService } from './api/questionnaire.service';\nimport { QuestionnaireResponseService } from './api/questionnaireResponse.service';\nimport { ReadCommunityResourceR4Service } from './api/readCommunityResourceR4.service';\nimport { ReadDSTU2Service } from './api/readDSTU2.service';\nimport { ReadDocumentR4Service } from './api/readDocumentR4.service';\nimport { ReadDocumentSTU3Service } from './api/readDocumentSTU3.service';\nimport { ReadEncounterDiagnosisProblemsSTU3Service } from './api/readEncounterDiagnosisProblemsSTU3.service';\nimport { ReadEncounterLevelLongitudinalDSTU2Service } from './api/readEncounterLevelLongitudinalDSTU2.service';\nimport { ReadEpisodeR4Service } from './api/readEpisodeR4.service';\nimport { ReadGeneratedCCDADSTU2Service } from './api/readGeneratedCCDADSTU2.service';\nimport { ReadImplantsR4Service } from './api/readImplantsR4.service';\nimport { ReadImplantsandExternalDevicesSTU3Service } from './api/readImplantsandExternalDevicesSTU3.service';\nimport { ReadOncologyPlanDayR4Service } from './api/readOncologyPlanDayR4.service';\nimport { ReadOrdersDSTU2Service } from './api/readOrdersDSTU2.service';\nimport { ReadOrdersR4Service } from './api/readOrdersR4.service';\nimport { ReadOrdersSTU3Service } from './api/readOrdersSTU3.service';\nimport { ReadOrdersSurgeriesSTU3Service } from './api/readOrdersSurgeriesSTU3.service';\nimport { ReadPatientDSTU2Service } from './api/readPatientDSTU2.service';\nimport { ReadPatientEnteredQuestionnairesR4Service } from './api/readPatientEnteredQuestionnairesR4.service';\nimport { ReadPatientFYIR4Service } from './api/readPatientFYIR4.service';\nimport { ReadPatientFYISTU3Service } from './api/readPatientFYISTU3.service';\nimport { ReadPatientR4Service } from './api/readPatientR4.service';\nimport { ReadPatientSTU3Service } from './api/readPatientSTU3.service';\nimport { ReadPatientsWithQuestionnairesDueSTU3Service } from './api/readPatientsWithQuestionnairesDueSTU3.service';\nimport { ReadProblemsDSTU2Service } from './api/readProblemsDSTU2.service';\nimport { ReadProblemsR4Service } from './api/readProblemsR4.service';\nimport { ReadQuestionnairesDueR4Service } from './api/readQuestionnairesDueR4.service';\nimport { ReadR4Service } from './api/readR4.service';\nimport { ReadRadiologyResultsR4Service } from './api/readRadiologyResultsR4.service';\nimport { ReadRadiologyResultsSTU3Service } from './api/readRadiologyResultsSTU3.service';\nimport { ReadReasonforVisitR4Service } from './api/readReasonforVisitR4.service';\nimport { ReadReferralR4Service } from './api/readReferralR4.service';\nimport { ReadResultsDSTU2Service } from './api/readResultsDSTU2.service';\nimport { ReadResultsR4Service } from './api/readResultsR4.service';\nimport { ReadResultsSTU3Service } from './api/readResultsSTU3.service';\nimport { ReadSTU3Service } from './api/readSTU3.service';\nimport { ReadSurgicalHistoryR4Service } from './api/readSurgicalHistoryR4.service';\nimport { ReadToothR4Service } from './api/readToothR4.service';\nimport { ReadVerifiedOrdersR4Service } from './api/readVerifiedOrdersR4.service';\nimport { ReadVerifiedOrdersSTU3Service } from './api/readVerifiedOrdersSTU3.service';\nimport { ReadVitalsDSTU2Service } from './api/readVitalsDSTU2.service';\nimport { ReadVitalsR4Service } from './api/readVitalsR4.service';\nimport { ReadVitalsSTU3Service } from './api/readVitalsSTU3.service';\nimport { RelatedPersonService } from './api/relatedPerson.service';\nimport { RequestGroupService } from './api/requestGroup.service';\nimport { ResearchStudyService } from './api/researchStudy.service';\nimport { ResearchSubjectService } from './api/researchSubject.service';\nimport { ScheduleService } from './api/schedule.service';\nimport { SearchCodeStatusR4Service } from './api/searchCodeStatusR4.service';\nimport { SearchCommunityResourceR4Service } from './api/searchCommunityResourceR4.service';\nimport { SearchDSTU2Service } from './api/searchDSTU2.service';\nimport { SearchDocumentSTU3Service } from './api/searchDocumentSTU3.service';\nimport { SearchEncounterDiagnosisProblemsSTU3Service } from './api/searchEncounterDiagnosisProblemsSTU3.service';\nimport { SearchEncounterLevelLongitudinalDSTU2Service } from './api/searchEncounterLevelLongitudinalDSTU2.service';\nimport { SearchGeneratedCCDADSTU2Service } from './api/searchGeneratedCCDADSTU2.service';\nimport { SearchImplantsR4Service } from './api/searchImplantsR4.service';\nimport { SearchImplantsandExternalDevicesSTU3Service } from './api/searchImplantsandExternalDevicesSTU3.service';\nimport { SearchInfectionSTU3Service } from './api/searchInfectionSTU3.service';\nimport { SearchIsolationR4Service } from './api/searchIsolationR4.service';\nimport { SearchLongitudinalR4Service } from './api/searchLongitudinalR4.service';\nimport { SearchMedicationsR4Service } from './api/searchMedicationsR4.service';\nimport { SearchOncologyPlanDayR4Service } from './api/searchOncologyPlanDayR4.service';\nimport { SearchOrdersDSTU2Service } from './api/searchOrdersDSTU2.service';\nimport { SearchOrdersR4Service } from './api/searchOrdersR4.service';\nimport { SearchOrdersSTU3Service } from './api/searchOrdersSTU3.service';\nimport { SearchOrdersSurgeriesSTU3Service } from './api/searchOrdersSurgeriesSTU3.service';\nimport { SearchPatientDSTU2Service } from './api/searchPatientDSTU2.service';\nimport { SearchPatientEnteredQuestionnairesR4Service } from './api/searchPatientEnteredQuestionnairesR4.service';\nimport { SearchPatientR4Service } from './api/searchPatientR4.service';\nimport { SearchPatientSTU3Service } from './api/searchPatientSTU3.service';\nimport { SearchPatientsWithQuestionnairesDueSTU3Service } from './api/searchPatientsWithQuestionnairesDueSTU3.service';\nimport { SearchProblemsDSTU2Service } from './api/searchProblemsDSTU2.service';\nimport { SearchQuestionnairesDueR4Service } from './api/searchQuestionnairesDueR4.service';\nimport { SearchR4Service } from './api/searchR4.service';\nimport { SearchRadiologyResultsR4Service } from './api/searchRadiologyResultsR4.service';\nimport { SearchRadiologyResultsSTU3Service } from './api/searchRadiologyResultsSTU3.service';\nimport { SearchReasonforVisitR4Service } from './api/searchReasonforVisitR4.service';\nimport { SearchResultsDSTU2Service } from './api/searchResultsDSTU2.service';\nimport { SearchResultsR4Service } from './api/searchResultsR4.service';\nimport { SearchResultsSTU3Service } from './api/searchResultsSTU3.service';\nimport { SearchSTU3Service } from './api/searchSTU3.service';\nimport { SearchSurgicalHistoryR4Service } from './api/searchSurgicalHistoryR4.service';\nimport { SearchToothR4Service } from './api/searchToothR4.service';\nimport { SearchVerifiedOrdersR4Service } from './api/searchVerifiedOrdersR4.service';\nimport { SearchVerifiedOrdersSTU3Service } from './api/searchVerifiedOrdersSTU3.service';\nimport { SearchVitalsDSTU2Service } from './api/searchVitalsDSTU2.service';\nimport { SearchVitalsR4Service } from './api/searchVitalsR4.service';\nimport { SearchVitalsSTU3Service } from './api/searchVitalsSTU3.service';\nimport { ServiceRequestService } from './api/serviceRequest.service';\nimport { SlotService } from './api/slot.service';\nimport { SpecimenService } from './api/specimen.service';\nimport { SubstanceService } from './api/substance.service';\nimport { TaskService } from './api/task.service';\nimport { UpdateCommunityResourceR4Service } from './api/updateCommunityResourceR4.service';\nimport { UpdateLDAWR4Service } from './api/updateLDAWR4.service';\nimport { UpdateLDAWSTU3Service } from './api/updateLDAWSTU3.service';\nimport { ValueSetService } from './api/valueSet.service';\nimport { OAuthService, LocalStorageService, ModalService } from './services';\nimport { appInitializerFactory } from './app-initializer';\nimport { NonEmbeddedAuthModalComponent } from './components';\nimport { FormsModule } from '@angular/forms';\n\n@NgModule({\n  imports: [FormsModule],\n  declarations: [NonEmbeddedAuthModalComponent],\n  exports: [],\n  providers: [\n    OAuthService,\n    LocalStorageService,\n    ModalService,\n    {\n      provide: APP_INITIALIZER,\n      useFactory: appInitializerFactory,\n      deps: [OAuthService],\n      multi: true,\n    },\n    AdverseEventService,\n    AllergyIntoleranceService,\n    AppointmentService,\n    BinaryService,\n    BodyStructureService,\n    CarePlanService,\n    CareTeamService,\n    CommunicationService,\n    ConditionService,\n    ConsentService,\n    CoverageService,\n    CreateClinicalNotesSTU3Service,\n    CreateCommunityResourceR4Service,\n    CreatePatientEnteredQuestionnairesR4Service,\n    CreatePatientSTU3Service,\n    CreateProblemsR4Service,\n    CreateProblemsSTU3Service,\n    CreateR4Service,\n    CreateSTU3Service,\n    CreateVitalsR4Service,\n    CreateVitalsSTU3Service,\n    DeviceService,\n    DeviceRequestService,\n    DeviceUseStatementService,\n    DiagnosticReportService,\n    DocumentReferenceService,\n    EncounterService,\n    EndpointService,\n    EpisodeOfCareService,\n    ExpandR4Service,\n    ExplanationOfBenefitService,\n    FamilyMemberHistoryService,\n    FlagService,\n    GoalService,\n    ImmunizationService,\n    ImmunizationRecommendationService,\n    LastnSocialHistorySTU3Service,\n    ListService,\n    LocationService,\n    MedicationService,\n    MedicationDispenseService,\n    MedicationOrderService,\n    MedicationRequestService,\n    MedicationStatementService,\n    NutritionOrderService,\n    ObservationService,\n    OrganizationService,\n    PatientService,\n    PractitionerService,\n    PractitionerRoleService,\n    ProcedureService,\n    ProcedureRequestService,\n    ProvenanceService,\n    QuestionnaireService,\n    QuestionnaireResponseService,\n    ReadCommunityResourceR4Service,\n    ReadDSTU2Service,\n    ReadDocumentR4Service,\n    ReadDocumentSTU3Service,\n    ReadEncounterDiagnosisProblemsSTU3Service,\n    ReadEncounterLevelLongitudinalDSTU2Service,\n    ReadEpisodeR4Service,\n    ReadGeneratedCCDADSTU2Service,\n    ReadImplantsR4Service,\n    ReadImplantsandExternalDevicesSTU3Service,\n    ReadOncologyPlanDayR4Service,\n    ReadOrdersDSTU2Service,\n    ReadOrdersR4Service,\n    ReadOrdersSTU3Service,\n    ReadOrdersSurgeriesSTU3Service,\n    ReadPatientDSTU2Service,\n    ReadPatientEnteredQuestionnairesR4Service,\n    ReadPatientFYIR4Service,\n    ReadPatientFYISTU3Service,\n    ReadPatientR4Service,\n    ReadPatientSTU3Service,\n    ReadPatientsWithQuestionnairesDueSTU3Service,\n    ReadProblemsDSTU2Service,\n    ReadProblemsR4Service,\n    ReadQuestionnairesDueR4Service,\n    ReadR4Service,\n    ReadRadiologyResultsR4Service,\n    ReadRadiologyResultsSTU3Service,\n    ReadReasonforVisitR4Service,\n    ReadReferralR4Service,\n    ReadResultsDSTU2Service,\n    ReadResultsR4Service,\n    ReadResultsSTU3Service,\n    ReadSTU3Service,\n    ReadSurgicalHistoryR4Service,\n    ReadToothR4Service,\n    ReadVerifiedOrdersR4Service,\n    ReadVerifiedOrdersSTU3Service,\n    ReadVitalsDSTU2Service,\n    ReadVitalsR4Service,\n    ReadVitalsSTU3Service,\n    RelatedPersonService,\n    RequestGroupService,\n    ResearchStudyService,\n    ResearchSubjectService,\n    ScheduleService,\n    SearchCodeStatusR4Service,\n    SearchCommunityResourceR4Service,\n    SearchDSTU2Service,\n    SearchDocumentSTU3Service,\n    SearchEncounterDiagnosisProblemsSTU3Service,\n    SearchEncounterLevelLongitudinalDSTU2Service,\n    SearchGeneratedCCDADSTU2Service,\n    SearchImplantsR4Service,\n    SearchImplantsandExternalDevicesSTU3Service,\n    SearchInfectionSTU3Service,\n    SearchIsolationR4Service,\n    SearchLongitudinalR4Service,\n    SearchMedicationsR4Service,\n    SearchOncologyPlanDayR4Service,\n    SearchOrdersDSTU2Service,\n    SearchOrdersR4Service,\n    SearchOrdersSTU3Service,\n    SearchOrdersSurgeriesSTU3Service,\n    SearchPatientDSTU2Service,\n    SearchPatientEnteredQuestionnairesR4Service,\n    SearchPatientR4Service,\n    SearchPatientSTU3Service,\n    SearchPatientsWithQuestionnairesDueSTU3Service,\n    SearchProblemsDSTU2Service,\n    SearchQuestionnairesDueR4Service,\n    SearchR4Service,\n    SearchRadiologyResultsR4Service,\n    SearchRadiologyResultsSTU3Service,\n    SearchReasonforVisitR4Service,\n    SearchResultsDSTU2Service,\n    SearchResultsR4Service,\n    SearchResultsSTU3Service,\n    SearchSTU3Service,\n    SearchSurgicalHistoryR4Service,\n    SearchToothR4Service,\n    SearchVerifiedOrdersR4Service,\n    SearchVerifiedOrdersSTU3Service,\n    SearchVitalsDSTU2Service,\n    SearchVitalsR4Service,\n    SearchVitalsSTU3Service,\n    ServiceRequestService,\n    SlotService,\n    SpecimenService,\n    SubstanceService,\n    TaskService,\n    UpdateCommunityResourceR4Service,\n    UpdateLDAWR4Service,\n    UpdateLDAWSTU3Service,\n    ValueSetService,\n  ],\n})\nexport class EpicOnFhirModule {\n  public static forRoot(\n    configurationFactory: () => Configuration\n  ): ModuleWithProviders<EpicOnFhirModule> {\n    return {\n      ngModule: EpicOnFhirModule,\n      providers: [{ provide: Configuration, useFactory: configurationFactory }],\n    };\n  }\n\n  constructor(\n    @Optional() @SkipSelf() parentModule: EpicOnFhirModule,\n    @Optional() http: HttpClient\n  ) {\n    if (parentModule) {\n      throw new Error(\n        'ApiModule is already loaded. Import in your base AppModule only.'\n      );\n    }\n    if (!http) {\n      throw new Error(\n        'You need to import the HttpClientModule in your AppModule! \\n' +\n          'See also https://github.com/angular/angular/issues/20575'\n      );\n    }\n  }\n}\n/**\n * A default forRoot function that takes arguments and reads most of the oauth parameters off window.location.search.\n *\n * @param epicClientId The Epic OAuth Client Id\n * @param isAppEmbedded Is the App running in an embedded capacity\n * @param issUrl If running in Standalone mode you must provide the issuerurl entrypoint\n * @param redirectUri Provide a custom redirect otherwise defaults to window.location.origin\n * @returns\n */\n\nexport function forRootInitializer(epicClientId: string, redirectUri?: string) {\n  return () => {\n    const urlSearchParams = new URLSearchParams(window.location.search);\n    const params: ConfigurationParameters = {\n      issUrl: urlSearchParams.get('iss') ?? undefined,\n      launchCode: urlSearchParams.get('launch') ?? undefined,\n      epicClientId: epicClientId,\n      redirectUri: redirectUri ?? window.location.origin,\n      authCode: urlSearchParams.get('code') ?? undefined,\n      authCodeState: urlSearchParams.get('state') ?? undefined,\n    };\n    return new Configuration(params);\n  };\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { Extension } from './extension';\n\n/**\n * An address expressed using postal conventions (as opposed to GPS or other location definition formats).  This data type may be used to convey addresses for use in delivering mail as well as for visiting locations which might not be valid for mail delivery.  There are a variety of postal address formats defined around the world.\n */\nexport interface Address {\n  id?: string;\n  /**\n   * May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.\n   */\n  extension?: Array<Extension>;\n  /**\n   * The purpose of this address.\n   */\n  use?: Address.UseEnum;\n  /**\n   * Distinguishes between physical addresses (those you can visit) and mailing addresses (e.g. PO Boxes and care-of addresses). Most addresses are both.\n   */\n  type?: Address.TypeEnum;\n  text?: string;\n  /**\n   * This component contains the house number, apartment number, street name, street direction,  P.O. Box number, delivery hints, and similar address information.\n   */\n  line?: Array<string>;\n  city?: string;\n  district?: string;\n  state?: string;\n  postalCode?: string;\n  country?: string;\n  period?: string;\n}\nexport namespace Address {\n  export type UseEnum = 'home' | 'work' | 'temp' | 'old' | 'billing';\n  export const UseEnum = {\n    Home: 'home' as UseEnum,\n    Work: 'work' as UseEnum,\n    Temp: 'temp' as UseEnum,\n    Old: 'old' as UseEnum,\n    Billing: 'billing' as UseEnum,\n  };\n  export type TypeEnum = 'postal' | 'physical' | 'both';\n  export const TypeEnum = {\n    Postal: 'postal' as TypeEnum,\n    Physical: 'physical' as TypeEnum,\n    Both: 'both' as TypeEnum,\n  };\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * The document metadata.\n */\nexport interface AllergyIntoleranceSTU3Meta {\n  /**\n   * Available in Netherlands environments only. This environment shows that this API conforms to the profile connected to the following canonical url: http://nictiz.nl/fhir/StructureDefinition/zib-AllergyIntolerance\n   */\n  profile: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * The document metadata.\n */\nexport interface AppointmentSTU3Meta {\n  /**\n   * Available in Netherlands environments only. This environment shows that this API conforms to the profile connected to the following canonical url: http://nictiz.nl/fhir/StructureDefinition/eAfspraak-Appointment\n   */\n  profile: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * A Response Type\n */\nexport interface BinaryDSTU2 {\n  /**\n   * <p>The actual content.</p>\n   */\n  content?: string;\n  /**\n   * <p>MimeType of the binary content. This is always \\\"application/xml\\\" as CDA documents are the only Binary content supported.</p>\n   */\n  contentType?: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * A single instance of a FHIR Binary resource.\n */\nexport interface BinaryR4 {\n  /**\n   * This is always \\\"application/pdf\\\" for radiology result data.\n   */\n  contentType?: string;\n  /**\n   * The note or document content as a base64-encoded value.\n   */\n  data?: string;\n  /**\n   * <p>The Binary FHIR ID.</p>\n   */\n  id?: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * A Response Type\n */\nexport interface BinarySTU3 {\n  /**\n   * The note or document content as a base64-encoded value.\n   */\n  content?: string;\n  /**\n   * This is always \\\"application/pdf\\\" for radiology result data.\n   */\n  contentType?: string;\n  /**\n   * The Binary FHIR ID.\n   */\n  id?: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BundleEntryEndpointDSTU2 } from './bundleEntryEndpointDSTU2';\n\n/**\n * Contains a collection of resources.\n */\nexport interface BundleEndpointDSTU2 {\n  /**\n   * Entry in the bundle.\n   */\n  entry?: Array<BundleEntryEndpointDSTU2>;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport { BundleEntryEndpointR4 } from './bundleEntryEndpointR4';\n\n/**\n * Contains a collection of resources.\n */\nexport interface BundleEndpointR4 {\n  /**\n   * Entry in the bundle.\n   */\n  entry?: Array<BundleEntryEndpointR4>;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * A URI that is a reference to a canonical URL on a FHIR resource\n */\nexport type Canonical = string;\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * A reference to a code defined by a terminology system.\n */\nexport interface Coding {\n  system?: string;\n  code?: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * The document metadata.\n */\nexport interface ConditionSTU3Meta {\n  /**\n   * Available in Netherlands environments only. This environment shows that this API conforms to the profile connected to the following canonical url: http://nictiz.nl/fhir/StructureDefinition/zib-Problem\n   */\n  profile: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * The document metadata.\n */\nexport interface ConsentSTU3Meta {\n  /**\n   * Available in Netherlands environments only. This element shows that this API conforms to the profile connected to the following canonical url: http://nictiz.nl/fhir/StructureDefinition/zib-AdvanceDirective\n   */\n  profile: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * The document metadata.\n */\nexport interface CoverageSTU3Meta {\n  /**\n   * Available in Netherlands environments only. This environment shows that this API conforms to the profile connected to the following canonical url: http://nictiz.nl/fhir/StructureDefinition/zib-Payer\n   */\n  profile: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface DeviceR4DeviceName {\n  /**\n   * <p>The name of the device.</p>\n   */\n  name?: string;\n  /**\n   * <p>Always set to \\\"other\\\".</p>\n   */\n  type?: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface DeviceR4UdiCarrier {\n  /**\n   * <p>Device carrier's UDI human-readable barcode string.</p>\n   */\n  carrierHRF?: string;\n  /**\n   * <p>Device identifier - fixed portion of UDI.</p>\n   */\n  deviceIdentifier?: string;\n  /**\n   * <p>Always set to \\\"unknown\\\".</p>\n   */\n  entryType?: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface DeviceR4Version {\n  /**\n   * GUDID version or model.\n   */\n  value?: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * The document metadata.\n */\nexport interface DeviceRequestSTU3Meta {\n  /**\n   * Available in Netherlands environments only. This environment shows that this API conforms to the profile connected to the following canonical url: http://nictiz.nl/fhir/StructureDefinition/zib-MedicalDeviceRequest\n   */\n  profile: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * The document metadata.*\n */\nexport interface DeviceSTU3Meta {\n  /**\n   * *Available in Netherlands environments only. This environment shows that this API conforms to the profile connected to the following canonical url: http://nictiz.nl/fhir/StructureDefinition/zib-MedicalDeviceProduct\n   */\n  profile: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * A Response Type\n */\nexport interface DeviceSTU3Udi {\n  /**\n   * <p>Human-readable barcode string.</p>\n   */\n  carrierHRF: string;\n  /**\n   * <p>Device identifier.</p>\n   */\n  deviceIdentifier: string;\n  /**\n   * <p>This element is always set to a value of \\\"unknown.\\\"</p>\n   */\n  entryType: string;\n  /**\n   * <p>Device name.</p>\n   */\n  name: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * The document metadata.*\n */\nexport interface DeviceUseStatementSTU3Meta {\n  /**\n   * *Available in Netherlands environments only. This environment shows that this API conforms to the profile connected to the following canonical url: http://nictiz.nl/fhir/StructureDefinition/zib-MedicalDevice\n   */\n  profile: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface DiagnosticReportR4PresentedForm {\n  /**\n   * Mime content type code.\n   */\n  contentType?: string;\n  /**\n   * Label to display in place of the data.\n   */\n  title?: string;\n  /**\n   * Binary link for the textual content.\n   */\n  url?: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * Where to access the document.\n */\nexport interface DocumentReferenceDSTU2Attachment {\n  /**\n   * Media type of the resource.\n   */\n  contentType?: string;\n  /**\n   * A reference to the Binary resource which contains the document content.\n   */\n  url?: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * Reference to Binary FHIR resource\n */\nexport interface DocumentReferenceSTU3Attachment {\n  /**\n   * Mime content type code. Always \\\"application/pdf\\\".\n   */\n  contentType: string;\n  /**\n   * Link to the Binary resource for text content.\n   */\n  url?: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * The document metadata.\n */\nexport interface DocumentReferenceSTU3Meta {\n  /**\n   * Available in Netherlands environments only. This environment shows that this API conforms to the profile connected to the following canonical url: http://nictiz.nl/fhir/StructureDefinition/IHE.MHD.Minimal.DocumentReference\n   */\n  profile: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * The document metadata.\n */\nexport interface EncounterSTU3Meta {\n  /**\n   * Available in Netherlands environments only. This environment shows that this API conforms to the profile connected to the following canonical url: http://nictiz.nl/fhir/StructureDefinition/zib-Encounter\n   */\n  profile: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * Optional Extension Element - found in all resources.\n */\nexport interface Extension {\n  id?: string;\n  /**\n   * May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.\n   */\n  extension?: Array<Extension>;\n  url?: string;\n  /**\n   * Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).\n   */\n  valueBase64Binary?: string;\n  /**\n   * Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).\n   */\n  valueBoolean?: boolean;\n  /**\n   * Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).\n   */\n  valueCanonical?: string;\n  /**\n   * Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).\n   */\n  valueCode?: string;\n  /**\n   * Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).\n   */\n  valueDate?: string;\n  /**\n   * Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).\n   */\n  valueDateTime?: string;\n  /**\n   * Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).\n   */\n  valueDecimal?: number;\n  /**\n   * Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).\n   */\n  valueId?: string;\n  /**\n   * Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).\n   */\n  valueInstant?: string;\n  /**\n   * Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).\n   */\n  valueInteger?: number;\n  /**\n   * Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).\n   */\n  valueMarkdown?: string;\n  /**\n   * Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).\n   */\n  valueOid?: string;\n  /**\n   * Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).\n   */\n  valuePositiveInt?: number;\n  /**\n   * Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).\n   */\n  valueString?: string;\n  /**\n   * Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).\n   */\n  valueTime?: string;\n  /**\n   * Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).\n   */\n  valueUnsignedInt?: number;\n  /**\n   * Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).\n   */\n  valueUri?: string;\n  /**\n   * Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).\n   */\n  valueUrl?: string;\n  /**\n   * Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).\n   */\n  valueUuid?: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * Information about the amount of vaccine administered.\n */\nexport interface ImmunizationDSTU2DoseQuantity {\n  /**\n   * Unit of amount of vaccine administered.\n   */\n  unit: string;\n  /**\n   * Amount of vaccine administered.\n   */\n  value: any;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * The document metadata.\n */\nexport interface ImmunizationRecommendationSTU3Meta {\n  /**\n   * Available in Netherlands environments only. This environment shows that this API conforms to the profile connected to the following canonical url: http://nictiz.nl/fhir/StructureDefinition/zib-VaccinationRecommendation\n   */\n  profile: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * The document metadata.\n */\nexport interface ImmunizationSTU3Meta {\n  /**\n   * Available in Netherlands environments only. This environment shows that this API conforms to the profile connected to the following canonical url: http://nictiz.nl/fhir/StructureDefinition/zib-Vaccination\n   */\n  profile: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface MedicationDispenseR4DoseAndRate {\n  /**\n   * Amount of medication per dose. The amount of therapeutic or other substance given at one administration event.\n   */\n  doseQuantity?: any;\n  /**\n   * Parses the upper and lower bounds of the dose from above.\n   */\n  doseRange?: any;\n  /**\n   * The discrete value of a medication’s rate of infusion.\n   */\n  rateQuantity?: any;\n  /**\n   * The high and low values of a medication’s rate of infusion.\n   */\n  rateRange?: any;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * The document metadata.\n */\nexport interface MedicationDispenseSTU3Meta {\n  /**\n   * Available in Netherlands environments only. This environment shows that this API conforms to the profile connected to the following canonical url: http://nictiz.nl/fhir/StructureDefinition/zib-AdministrationAgreement\n   */\n  profile: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * The amount of therapeutic or other substance given at one administration event.\n */\nexport interface MedicationOrderDSTU2DoseQuantity {\n  /**\n   * A computer processable form of the units in some unit representation system.\n   */\n  code?: string;\n  /**\n   * How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues. E.g. if the comparator is \\\"<\\\" , then the real value is < stated value.\n   */\n  comparator?: string;\n  /**\n   * The identification of the system that provides the coded form of the unit.\n   */\n  system?: string;\n  /**\n   * A human-readable form of the units.\n   */\n  unit?: string;\n  /**\n   * The value of the measured amount. The value includes an implicit precision in the presentation of the value.\n   */\n  value: any;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * The amount of therapeutic or other substance given at one administration event, specified as a range.\n */\nexport interface MedicationOrderDSTU2DoseRange {\n  /**\n   * The high limit. The boundary is inclusive.\n   */\n  high?: any;\n  /**\n   * The low limit. The boundary is inclusive.\n   */\n  low?: any;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * A set of rules that describe when the event should occur.\n */\nexport interface MedicationOrderDSTU2TimingRepeat {\n  /**\n   * The number of times to repeat the action within the specified period / period range (i.e. both period and periodMax provided).\n   */\n  frequency: any;\n  /**\n   * Indicates the duration of time over which repetitions are to occur. E.g. to express \\\"3 times per day\\\", 3 would be the frequency and \\\"1 day\\\" would be the period.\n   */\n  period: any;\n  /**\n   * The units of time for the period in UCUM units.\n   */\n  periodUnits?: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * A Response Type\n */\nexport interface MedicationRequestR4Substitution {\n  /**\n   * Whether substitution is allowed or not.\n   */\n  allowedBoolean?: boolean;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * A Response Type\n */\nexport interface MedicationRequestSTU3Substitution {\n  /**\n   * <p>If the Dispense as Written item is set to 1, we return this as No.</p> <p>If Dispense as Written does not equal 1, we don't return a substitution element.</p>\n   */\n  allowed: boolean;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * The document metadata.\n */\nexport interface MedicationSTU3Meta {\n  /**\n   * Available in Netherlands environments only. This environment shows that this API conforms to the profile connected to the following canonical url: http://nictiz.nl/fhir/StructureDefinition/zib-Product\n   */\n  profile: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * The document metadata.\n */\nexport interface MedicationStatementSTU3Meta {\n  /**\n   * Available in Netherlands environments only. This environment shows that this API conforms to the profile connected to the following canonical url: http://nictiz.nl/fhir/StructureDefinition/zib-MedicationUse\n   */\n  profile: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * The document metadata.\n */\nexport interface NutritionOrderSTU3Meta {\n  /**\n   * Available in Netherlands environments only. This environment shows that this API conforms to the profile connected to the following canonical url: http://nictiz.nl/fhir/StructureDefinition/zib-NutritionAdvice\n   */\n  profile: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * The document metadata.\n */\nexport interface ObservationSTU3Meta {\n  /**\n   * Available in Netherlands environments only. This element shows that this API conforms to the profile connected to one of the following canonical urls: • http://nictiz.nl/fhir/StructureDefinition/zib-BloodPressure • http://nictiz.nl/fhir/StructureDefinition/zib-BodyWeight • http://nictiz.nl/fhir/StructureDefinition/zib-BodyHeight\n   */\n  profile: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * The document metadata.\n */\nexport interface OrganizationSTU3Meta {\n  /**\n   * Available in Netherlands environments only. This environment shows that this API conforms to the profile connected to the following canonical url: http://fhir.nl/fhir/StructureDefinition/nl-core-organization\n   */\n  profile: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface PatientDSTU2Name {\n  /**\n   * The patient's family (last) name.\n   */\n  family?: string;\n  /**\n   * The patient's given name. May include first and middle names.\n   */\n  given?: string[];\n  /**\n   * The patient's name prefix.\n   */\n  prefix?: string;\n  /**\n   * The patient's name suffix. Acquired as a title due to academic, legal, employment or nobility status, etc.\n   */\n  suffix?: string;\n  /**\n   * The patient's full name as a string.\n   */\n  text?: string;\n  /**\n   * The purpose of the name. May be \\\"legal\\\" or \\\"usual\\\". See the name parameter for full details on use.\n   */\n  use?: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface PatientDSTU2Telecom {\n  /**\n   * <p>The type of telecom. Potential values are:</p> <ul> <li>email</li> <li>phone</li> </ul>\n   */\n  system?: string;\n  /**\n   * <p>If the telecom entry is a phone number, possible values are:</p> <ul> <li>home</li> <li>mobile</li> <li>work</li> </ul>\n   */\n  use?: string;\n  /**\n   * <p>Value of the telecom method. May be an email address or phone number.</p>\n   */\n  value?: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface PatientR4Name1 {\n  /**\n   * The patient's family (last) name.\n   */\n  family?: string;\n  /**\n   * The patient's given name. May include first and middle names.\n   */\n  given?: string[];\n  /**\n   * The patient's name prefix.\n   */\n  prefix?: string;\n  /**\n   * The patient's name suffix. Acquired as a title due to academic, legal, employment or nobility status, etc.\n   */\n  suffix?: string;\n  /**\n   * The patient's full name as a string.\n   */\n  text?: string;\n  /**\n   * The purpose of the name. May be \\\"legal\\\" or \\\"usual\\\". See the name parameter for full details on use.\n   */\n  use?: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface PatientR4Telecom {\n  /**\n   * <p>The type of telecom. Potential values are:</p> <ul> <li>email</li> <li>phone</li> </ul>\n   */\n  system?: string;\n  /**\n   * <p>If the telecom entry is a phone number, possible values are:</p> <ul> <li>home</li> <li>mobile</li> <li>work</li> </ul>\n   */\n  use?: string;\n  /**\n   * Value of the telecom method. May be an email address or phone number.\n   */\n  value?: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * The document metadata.\n */\nexport interface PatientSTU3Meta {\n  /**\n   * Available in Netherlands environments only. This environment shows that this API conforms to the profile connected to the following canonical url: http://fhir.nl/fhir/StructureDefinition/nl-core-patient\n   */\n  profile: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface PractitionerR4Photo {\n  /**\n   * The URI or URL where the photo can be found. If this is a BLOB key, we will return a URL to a binary resource.\n   */\n  url?: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface PractitionerR4Telecom {\n  /**\n   * Always set to \\\"email\\\"\n   */\n  system?: string;\n  /**\n   * The email for the Epic user-based practitioner. Obtained from the user record.\n   */\n  value?: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * The document metadata.\n */\nexport interface PractitionerRoleSTU3Meta {\n  /**\n   * Available in Netherlands environments only. This environment shows that this API conforms to the profile connected to the following canonical url: http://fhir.nl/fhir/StructureDefinition/nl-core-practitionerrole\n   */\n  profile: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * The document metadata.\n */\nexport interface PractitionerSTU3Meta {\n  /**\n   * Available in Netherlands environments only. This environment shows that this API conforms to the profile connected to the following canonical url: http://fhir.nl/fhir/StructureDefinition/nl-core-practitioner\n   */\n  profile: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * The document metadata.\n */\nexport interface ProcedureRequestSTU3Meta {\n  /**\n   * Available in Netherlands environments only. This environment shows that this API conforms to the profile connected to the following canonical url: http://nictiz.nl/fhir/StructureDefinition/zib-ProcedureRequest\n   */\n  profile: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * The document metadata.\n */\nexport interface ProcedureSTU3Meta {\n  /**\n   * Available in Netherlands environments only. This environment shows that this API conforms to the profile connected to the following canonical url: http://nictiz.nl/fhir/StructureDefinition/zib-Procedure\n   */\n  profile: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface QuestionnaireResponseR4Answer {\n  /**\n   * The attachment as a binary resource URL.\n   */\n  valueAttachment?: any;\n  /**\n   * Boolean value\n   */\n  valueBoolean?: boolean;\n  /**\n   * Coding value.\n   */\n  valueCoding?: any;\n  /**\n   * Date value\n   */\n  valueDate?: string;\n  /**\n   * Decimal value\n   */\n  valueDecimal?: any;\n  /**\n   * Quantity value.\n   */\n  valueQuantity?: any;\n  /**\n   * String value\n   */\n  valueString?: string;\n  /**\n   * Time value\n   */\n  valueTime?: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface ResearchStudyR4Arm {\n  /**\n   * Short explanation of the study path.\n   */\n  description?: string;\n  /**\n   * Label for the study arm.\n   */\n  name?: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * The document metadata.\n */\nexport interface SpecimenSTU3Meta {\n  /**\n   * Available in Netherlands environments only. This environment shows that this API conforms to the profile connected to the following canonical url: http://nictiz.nl/fhir/StructureDefinition/zib-LaboratoryTestResult-Specimen\n   */\n  profile: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n/**\n * String of characters used to identify a name or a resource\n */\nexport type Uri = string;\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface ValueSetR4ExpansionContains {\n  /**\n   * Code value.\n   */\n  code?: string;\n  /**\n   * User display value associated with the code.\n   */\n  display?: string;\n  /**\n   * System value for the code.\n   */\n  system?: string;\n}\n","/**\n * Epic on Fhir\n * All of the components of the Change Healthcare Interoperability Apis\n *\n * OpenAPI spec version: 1.0.0\n * Contact: bmain@lumeris.com\n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nexport interface ValueSetR4ExpansionParameter {\n  /**\n   * Parameter name as assigned by the client or server.\n   */\n  name?: string;\n  /**\n   * Parameter value.\n   */\n  valueBoolean?: boolean;\n  /**\n   * Parameter value.\n   */\n  valueCode?: string;\n  /**\n   * Parameter value.\n   */\n  valueDateTime?: string;\n  /**\n   * Parameter value.\n   */\n  valueDecimal?: any;\n  /**\n   * Parameter value.\n   */\n  valueInteger?: any;\n  /**\n   * Parameter value.\n   */\n  valueString?: string;\n  /**\n   * Parameter value.\n   */\n  valueUri?: string;\n}\n","/*\n * Public API Surface of ngx-epic-fhir-client\n */\nexport * from './lib/api.module';\nexport * from './lib/configuration';\nexport * from './lib/model';\nexport * from './lib/api';\nexport * from './lib/services';\nexport * from './lib/components';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.Configuration","i3.LocalStorageService"],"mappings":"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"}