diff --git a/types/fhir-kit-client/fhir-kit-client-tests.ts b/types/fhir-kit-client/fhir-kit-client-tests.ts index 0ec7e316b3..fbe6ac438c 100644 --- a/types/fhir-kit-client/fhir-kit-client-tests.ts +++ b/types/fhir-kit-client/fhir-kit-client-tests.ts @@ -107,6 +107,25 @@ client.batch({ } }); +client.read({ + resourceType: "Patient", + id: "1234" +}).then(p => { + if (p.language === 'en') { + console.log('patient english'); + } +}); + +client.vread({ + resourceType: "Patient", + id: "1234", + version: "1" +}).then(p => { + if (p.language === 'en') { + console.log('patient english'); + } +}); + client.transaction({ body: { type: "transaction" diff --git a/types/fhir-kit-client/index.d.ts b/types/fhir-kit-client/index.d.ts index bb4e5e2ec1..21720dbeba 100644 --- a/types/fhir-kit-client/index.d.ts +++ b/types/fhir-kit-client/index.d.ts @@ -144,7 +144,7 @@ interface CustomResource extends fhir.ResourceBase { type FhirResource = CustomResource | fhir.Resource; interface SearchParams { - [key: string]: string|number|boolean; + [key: string]: string|number|boolean|Array; } interface Compartment { @@ -273,6 +273,156 @@ declare class Client { */ capabilityStatement(params?: { headers?: Headers, options?: Options }): Promise; + /** + * Get a resource by id. + * + * @example + * + * // Using promises + * fhirClient.read({ + * resourceType: 'Patient', + * id: '12345', + * }).then(data => console.log(data)); + * + * // Using async + * let response = await fhirClient.read({ + * resourceType: 'Patient', + * id: '12345', + * }); + * console.log(response); + * + * @param {Object} params - The request parameters. + * @param {String} params.resourceType - The resource type (e.g. "Patient", + * "Observation"). + * @param {String} params.id - The FHIR id for the resource. + * @param {Object} [params.headers] - DEPRECATED Optional custom headers to + * add to the request + * @param {Object} [params.options] - Optional options object + * @param {Object} [params.options.headers] - Optional headers to add to the + * request + * + * @return {Promise} FHIR resource + */ + read(params: { resourceType: "Account", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "ActivityDefinition", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "AdverseEvent", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "AllergyIntolerance", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Appointment", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "AppointmentResponse", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "AuditEvent", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Basic", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Binary", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "BodySite", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Bundle", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "CapabilityStatement", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "CarePlan", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "CareTeam", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "ChargeItem", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Claim", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "ClaimResponse", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "ClinicalImpression", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "CodeSystem", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Communication", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "CommunicationRequest", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "CompartmentDefinition", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Composition", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "ConceptMap", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Condition", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Consent", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Contract", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Coverage", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "DataElement", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "DetectedIssue", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Device", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "DeviceComponent", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "DeviceMetric", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "DeviceRequest", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "DeviceUseStatement", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "DiagnosticReport", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "DocumentManifest", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "DocumentReference", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "DomainResource", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "EligibilityRequest", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "EligibilityResponse", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Encounter", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Endpoint", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "EnrollmentRequest", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "EnrollmentResponse", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "EpisodeOfCare", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "ExpansionProfile", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "ExplanationOfBenefit", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "FamilyMemberHistory", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Flag", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Goal", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "GraphDefinition", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Group", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "GuidanceResponse", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "HealthcareService", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "ImagingManifest", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "ImagingStudy", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Immunization", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "ImmunizationRecommendation", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "ImplementationGuide", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Library", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Linkage", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "List", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Location", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Measure", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "MeasureReport", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Media", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Medication", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "MedicationAdministration", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "MedicationDispense", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "MedicationRequest", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "MedicationStatement", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "MessageDefinition", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "MessageHeader", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "NamingSystem", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "NutritionOrder", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Observation", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "OperationDefinition", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "OperationOutcome", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Organization", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Parameters", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Patient", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "PaymentNotice", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "PaymentReconciliation", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Person", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "PlanDefinition", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Practitioner", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "PractitionerRole", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Procedure", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "ProcedureRequest", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "ProcessRequest", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "ProcessResponse", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Provenance", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Questionnaire", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "QuestionnaireResponse", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "ReferralRequest", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "RelatedPerson", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "RequestGroup", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "ResearchStudy", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "ResearchSubject", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "RiskAssessment", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Schedule", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "SearchParameter", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Sequence", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "ServiceDefinition", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Slot", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Specimen", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "StructureDefinition", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "StructureMap", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Subscription", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Substance", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "SupplyDelivery", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "SupplyRequest", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "Task", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "TestReport", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "TestScript", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "ValueSet", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: "VisionPrescription", id: string, headers?: Headers, options?: Options }): Promise; + read(params: { resourceType: CustomResourceType, id: string, headers?: Headers, options?: Options }): Promise; + /** * Get a resource by id and version. *