How to upload USCDI Valuesets, Profiles, Etc on Se...
# support
d
Sorry if this is a basic question, but I've been able to figure out how to import the USCDI data into our self-hosted system. I have run the rebuild structure definitions and value sets from the super admin UI but that just rebuilds them and doesn't fix the issue. Did I miss something in the docs somewhere?
m
Hi Doug! Would you mind sharing how you imported the data? We would generally recommend running the import using your CLI, since the file is quite large
Here are some docs on code system importing: https://www.medplum.com/docs/api/fhir/operations/codesystem-import
r
As part of our enterprise offering, we will upload our parsed version of the USCDI into your self-hosted instance
d
Ahh ok, so it's not part of the initial bootstrap and we have to upload ourselves. Is that correct?
I was just experimenting with some of the exmples like the charting demo and kept hitting errors b/c all of the USCDI data was missing and so I assumed that it was automatically imported
c
i think i just asked this same question
How do we do this as self hosted forked?
m
Hi @Charles Li , you should be able to import any code system with the import operation: https://www.medplum.com/docs/api/fhir/operations/codesystem-import
r
To expand - you can upload the
StructureDefinitions
and
ValueSet
resources from the US Core implementation guide: https://build.fhir.org/ig/HL7/US-Core/index.html
The fundamental blocker will be importing the underlying code sytems
Those can be downloaded from https://www.nlm.nih.gov/research/umls/index.html . But they will need to be parsed into a format to be imported using
CodeSystem/$import
d
Got it. Thank you for the clarification!
Following up on this. I see this discussion: https://github.com/medplum/medplum/discussions/1411 It gave 3 high-level options and it looks like option 1 with a public terminology setup was prefered but I don't think I saw any final decision in there or the other linked docs. What was decided and implemented? I'm most of the way through uploading the valuesets and code systems but this question came up since we have a multi-tenant system and recreating the terminologies across each project would explode our database size as mentioned in option 3
To add even more color, we want to be able to share the base terminologies across project (tenants) but then also have tenants be able to configure their own valuesets and code systems for their specific use cases
And just like that I think I answered my own question https://www.medplum.com/docs/access/projects#common-use-cases
r
@Doug DeBold glad you were able to get it working
Project linking is how we solve this in our hosted solution
Out of curiousity, would you mind sharing your multi-tenancy use case? Would love to learn more about how you're using the platform
d
Yeah! It's a bit of a long and convoluted road but we are a digital health tech consultancy and over the years have built out a suite of products/features to help our clients. We primary work with startups and found that many typical Saas products that normal tech startups take for granted are wayyyyy too expensive to get a BAA, so we have built out a suite of products to help fill that gap for our clients. Admin tooling, analytics, marketing automation provider portal etc. Most of our clients have either kept using their EHR or been cash pay or healthcare adjacent so a proper EHR has never been needed. We now have had a bunch of similar clients in the cash-pay space where they need a very light EHR so we're integrating medplum into our multi-tenant platform as the clinical data repository. Because each tenant is quite different it doesn't quite fit the MSO model as each tenant has their own workflow, patients, providers, value sets and all the configurations. We're definitely in still in the learning curve with medplum, but building out a basic provider portal/EHR alongside a multi-tenant React Native app for our clients.
We had a chat with Reshma a few months ago but decided to stay on the open-source self-hosted version as adding another service to our current infra was quick and easy
Some quick feedback on the docs is that the purpose of the FHIR R4 project when you self-host is really unclear. I finally found it's hos you share terminology across all projects but I think that some mention of this in the self-hosting docs would make it much more clear that this is really a system administered project that shouldn't be messed with
Hopefully my final question. Do you recommend encoding the parent-child associations in snomed, icd10 and loinc or just flattening the codes and using only non-heirarchical
i
@Doug DeBold can you be a little more specific here? Do you have an example?
d
With ICD10, Loinc, Snomed etc you could have all of the codes flattened and have not relationship between them OR you could do like the below example where Chest Pain is a grand-child of "Clinical Finding". With medplum, what is the recommended approach? ``` { "resourceType": "CodeSystem", "id": "snomed-subset", "url": "http://snomed.info/sct", "version": "20230301", "name": "SNOMEDSubset", "title": "SNOMED CT Subset", "status": "active", "experimental": false, "date": "2025-07-21", "publisher": "Your Organization", "content": "complete", "hierarchyMeaning": "is-a", "concept": [ { "code": "404684003", "display": "Clinical finding", "concept": [ { "code": "409586006", "display": "Complaint", "concept": [ { "code": "162467007", "display": "Chest pain" }, { "code": "24700007", "display": "Headache" } ] } ] } ] }
168 Views