Skip to main content
Glama
user-management-guide.ts7.11 kB
// SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors // SPDX-License-Identifier: Apache-2.0 // start-block imports import { MedplumClient } from '@medplum/core'; // end-block imports const medplum = new MedplumClient(); // start-block searchProjectMembershipTs await medplum.searchResources('ProjectMembership'); // end-block searchProjectMembershipTs /* // start-block searchProjectMembershipCli medplum get 'ProjectMembership' // end-block searchProjectMembershipCli // start-block searchProjectMembershipCurl curl 'https://api.medplum.com/fhir/R4/ProjectMembership' \ -H 'authorization: Bearer $ACCESS_TOKEN' \ -H 'content-type: application/fhir+json' \ // end-block searchProjectMembershipCurl */ // start-block searchExcludingClientBotTs await medplum.searchResources('ProjectMembership', 'profile-type:not=ClientApplication,Bot'); // end-block searchExcludingClientBotTs /* // start-block searchExcludingClientBotCli medplum get 'ProjectMembership?profile-type:not=ClientApplication,Bot' // end-block searchExcludingClientBotCli // start-block searchExcludingClientBotCurl curl 'https://api.medplum.com/fhir/R4/ProjectMembership?profile-type:not=ClientApplication,Bot' \ -H 'authorization: Bearer $ACCESS_TOKEN' \ -H 'content-type: application/fhir+json' \ // end-block searchExcludingClientBotCurl */ // start-block searchProfileTypePatientTs await medplum.searchResources('ProjectMembership', 'profile-type=Patient'); // end-block searchProfileTypePatientTs /* // start-block searchProfileTypePatientCli medplum get 'ProjectMembership?profile-type=Patient' // end-block searchProfileTypePatientCli // start-block searchProfileTypePatientCurl curl 'https://api.medplum.com/fhir/R4/ProjectMembership?profile-type=Patient' \ -H 'authorization: Bearer $ACCESS_TOKEN' \ -H 'content-type: application/fhir+json' \ // end-block searchProfileTypePatientCurl */ // start-block searchProfileTypePractitionerTs await medplum.searchResources('ProjectMembership', 'profile-type=Practitioner'); // end-block searchProfileTypePractitionerTs /* // start-block searchProfileTypePractitionerCli medplum get 'ProjectMembership?profile-type=Practitioner' // end-block searchProfileTypePractitionerCli // start-block searchProfileTypePractitionerCurl curl 'https://api.medplum.com/fhir/R4/ProjectMembership?profile-type=Practitioner' \ -H 'authorization: Bearer $ACCESS_TOKEN' \ -H 'content-type: application/fhir+json' \ // end-block searchProfileTypePractitionerCurl */ // start-block createProjectTs await medplum.createResource({ resourceType: 'Project', name: 'ProjectName', strictMode: true, }); // end-block createProjectTs /* // start-block createProjectCli medplum post Project '{"resourceType":"Project","name":"ProjectName","strictMode":true}' // end-block createProjectCli // start-block createProjectCurl curl 'https://api.medplum.com/admin/Project/' \ -X POST \ -H 'Authorization: Bearer ${accessToken}' \ -H 'Content-Type: application/json' \ --data-raw '{"resourceType":"Project","name":"ProjectName","strictMode":true}' // end-block createProjectCurl */ // start-block inviteNewAdminTs await medplum.post('admin/projects/example-project-id/invite', { resourceType: 'Practitioner', firstName: 'Alice', lastName: 'Smith', email: 'alicesmith@example.com', admin: true, scope: 'server', }); // end-block inviteNewAdminTs /* // start-block inviteNewAdminCli medplum post admin/projects/example-project-id/invite \ '{ "resourceType": "Practitioner", "firstName": "Alice", "lastName": "Smith", "email": "alicesmith@example.com", "admin": true }' // end-block inviteNewAdminCli // start-block inviteNewAdminCurl curl 'https://api.medplum.com/admin/projects/example-project-id/invite' \ -H 'Authorization: Bearer ${accessToken}' \ -H 'Content-Type: application/json' \ --data-raw '{"resourceType":"Practitioner","firstName":"Alice","lastName":"Smith","email":"alicesmith@example.com","admin":true}' // end-block inviteNewAdminCurl */ // start-block makeAdminTs // The user's project membership const membership = { resourceType: 'ProjectMembership', id: 'example-membership-id', // ... admin: false, }; // For the updated membership, create a new resource and spread the original in, only changing the admin field const updatedMembership = { ...membership, admin: true, }; // Finally, post the updated membership to the API to make the user an admin await medplum.post(`admin/projects/example-project-id/members/example-membership-id`, updatedMembership); // end-block makeAdminTs /* // start-block makeAdminCli medplum patch 'admin/projects/example-project-id/members/example-membership-id' '[{"op": "replace", "path": "/admin", "value": true}]' // end-block makeAdminCli // start-block makeAdminCurl curl -X PATCH 'https://api.medplum.com/admin/projects/example-project-id/members/example-membership-id' \ -H 'Authorization: Bearer ${accessToken} \ -H 'Content-Type: application/json-patch+json' \ --data-raw '[{ "op": "replace", "path": "/admin", "value": true }]' // end-block makeAdminCurl */ /* // start-block prepareJson { "resourceType": "Patient", "firstName": "Homer", "lastName": "Simpson", "email": "homer@example.com", "sendEmail": false } // end-block prepareJson */ // start-block inviteUserTs await medplum.post('/admin/projects/example-project-id/invite', { resourceType: 'Patient', firstName: 'Homer', lastName: 'Simpson', email: 'homer@example.com', sendEmail: false, }); // end-block inviteUserTs /* // start-block inviteUserCli medplum post 'admin/projects/example-project-id/invite' '{"resourceType":"Patient","firstName":"Homer","lastName":"Simpson","email":"homer@example.com", "sendEmail":"false"}' // end-block inviteUserCli // start-block inviteUserCurl curl 'https://api.medplum.com/admin/projects/example-project-id/invite' \ -H 'Authorization: Bearer ${accessToken}' \ -H 'Content-Type: application/json' \ --data-raw '{"resourceType":"Patient","firstName":"Homer","lastName":"Simpson","email":"homer@example.com", "sendEmail":"false"}' // end-block inviteUserCurl */ /* // start-block prepareJsonAdmin { "resourceType": "Patient", "firstName": "Homer", "lastName": "Simpson", "email": "homer@example.com", "membership": { "admin": true, }, } // end-block prepareJsonAdmin */ /* // start-block prepareJsonAccessPolicy { "resourceType": "Patient", "firstName": "Homer", "lastName": "Simpson", "email": "homer@example.com", "membership": { "access": [ { "policy": { "reference": "AccessPolicy/123" }, "parameter": [ { "name": "provider_organization", "valueReference": { "reference": "Organization/abc" } } ] }, { "policy": { "reference": "AccessPolicy/123" }, "parameter": [ { "name": "provider_organization", "valueReference": { "reference": "Organization/def" } } ] } ] } } // end-block prepareJsonAccessPolicy */

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/medplum/medplum'

If you have feedback or need assistance with the MCP directory API, please join our Discord server