getConditionById
Retrieve a specific condition resource using its unique ID within the Medplum MCP Server. Simplifies access to healthcare data for precise queries and management.
Instructions
Retrieves a condition resource by its unique ID.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| conditionId | Yes | The unique ID of the condition to retrieve. |
Implementation Reference
- src/tools/conditionUtils.ts:194-234 (handler)The main handler function that retrieves a Condition FHIR resource by its ID using the Medplum client. Handles authentication, reads the resource, logs success, returns null if not found, and OperationOutcome on errors.export async function getConditionById( conditionId: string, client?: MedplumClient, ): Promise<Condition | null | OperationOutcome> { const medplumClient = client || medplum; await ensureAuthenticated(); try { if (!conditionId) { throw new Error('Condition ID is required.'); } const condition = (await medplumClient.readResource( 'Condition', conditionId, )) as Condition | null; if (condition) { console.log('Condition retrieved:', condition.id); } return condition; } catch (error: any) { if (error.outcome && error.outcome.issue && error.outcome.issue[0]?.code === 'not-found') { console.log(`Condition with ID "${conditionId}" not found.`); return null; } console.error(`Error retrieving Condition with ID "${conditionId}":`, error); const outcome: OperationOutcome = { resourceType: 'OperationOutcome', issue: [ { severity: 'error', code: 'exception', diagnostics: `Error retrieving Condition: ${error.message || 'Unknown error'}`, }, ], }; if (error.outcome) { console.error('Server OperationOutcome:', JSON.stringify(error.outcome, null, 2)); return error.outcome as OperationOutcome; } return outcome; } }
- src/index.ts:852-864 (schema)MCP tool schema for getConditionById defining the input as an object with required 'conditionId' string.name: "getConditionById", description: "Retrieves a condition resource by its unique ID.", inputSchema: { type: "object", properties: { conditionId: { type: "string", description: "The unique ID of the condition to retrieve.", }, }, required: ["conditionId"], }, },
- src/index.ts:950-988 (registration)Registration of the getConditionById function in the toolMapping object used by the MCP server's CallToolRequest handler to dispatch tool calls.const toolMapping: Record<string, (...args: any[]) => Promise<any>> = { createPatient, getPatientById, updatePatient, searchPatients, searchPractitionersByName, createPractitioner, getPractitionerById, updatePractitioner, searchPractitioners, createOrganization, getOrganizationById, updateOrganization, searchOrganizations, createEncounter, getEncounterById, updateEncounter, searchEncounters, createObservation, getObservationById, updateObservation, searchObservations, createMedicationRequest, getMedicationRequestById, updateMedicationRequest, searchMedicationRequests, createMedication, getMedicationById, searchMedications, createEpisodeOfCare, getEpisodeOfCareById, updateEpisodeOfCare, searchEpisodesOfCare, createCondition, getConditionById, updateCondition, searchConditions, generalFhirSearch, };
- src/index.ts:62-68 (registration)Import statement bringing the getConditionById handler into the main index.ts for use in tool mapping.createCondition, getConditionById, updateCondition, searchConditions, ConditionClinicalStatusCodes, ConditionVerificationStatusCodes, } from './tools/conditionUtils.js';