Using Public Component Libraries

SDCStudio provides public projects (read-only libraries) containing pre-built components you can reference in your own projects.

Important: Your projects are private by default. Only the pre-built library projects (NIEM, FHIR, etc.) are public. You control whether to share your work.

Available Public Libraries

Library Project Name Components Use For
Default Default Library 50+ general components Business applications
NIEM NIEM Foundation 3,800+ components Government, justice, emergency
FHIR FHIR Clinical 150+ resources Healthcare IT, EHR integration
NIH CDE NIH Common Data Elements 500+ CDEs Clinical research, trials

How Projects Work

Public Projects (Read-Only, Everyone Can Reference):
├── Default Library Project ← SDCStudio maintains
├── NIEM Foundation Project ← SDCStudio maintains
├── FHIR Clinical Project ← SDCStudio maintains
└── NIH CDE Project ← SDCStudio maintains

Your Private Projects (You Own & Control):
├── My Justice System ← Private to you/your team
│   ├── References: @NIEM:person_given_name ✓
│   └── Custom: ArrestReport
│
└── My Hospital Portal ← Private to you/your team
    ├── References: @FHIR:Patient.name.given ✓
    └── Custom: AppointmentRequest

Privacy Control: - Your projects are private by default - Only you (and team members) can see/edit them - You can export schemas without making projects public - Optional: Publish your project to share with community

Three Ways to Use Public Components

1. Reference (Reuse As-Is)

In your Markdown template:

### Column: arrestee_first_name
**ReuseComponent**: @NIEM:person_given_name
  • Uses the NIEM component directly (from public library)
  • No duplication - links to original
  • Your project stays private, but references public components
  • Updates if NIEM library updates (rare)
  • Best for: Standard fields that don't need customization

2. Copy & Modify

Via UI: 1. Browse to NIEM Foundation project (public) 2. Find person_given_name component 3. Click "Copy" 4. In the dialog, select your project from the dropdown 5. Component gets new CUID2 (e.g., xyz123) in your project 6. Modify constraints, description, etc. in your private project

  • Creates independent copy in the project you selected
  • No connection to original
  • Safe to customize extensively
  • Best for: Need similar component but with project-specific constraints

3. Create Custom

Build from scratch in your private project: - Unique business logic - Domain-specific semantics - No public library equivalent - Fully private to your organization

Choosing Your Primary Library

Start here if you're building:

Government/Justice/Emergency Management → Use NIEM Foundation

  • Cross-agency data sharing
  • NCIC, FBI UCR compliance
  • Arrest reports, incident reports, emergency operations
  • Example: Reference @NIEM:arrest_date, @NIEM:location_state_code in your private project

Healthcare/Clinical Systems → Use FHIR Clinical

  • EHR integration
  • HL7 FHIR compliance
  • Patient records, observations, medications
  • Example: Reference @FHIR:Patient, @FHIR:Observation.valueQuantity in your private project

NIH-Funded Research → Use NIH CDE

  • Clinical trials
  • Common Data Elements with CDE IDs
  • Biomedical research data sharing
  • Example: Reference @NIH:CDE-12345-VitalStatus in your private project

General Business/Startups → Use Default Library

  • Customer databases
  • Internal tools
  • No regulatory requirements
  • Example: Reference @Default:PersonName, @Default:Address in your private project

Can I Mix Libraries?

Yes! You can reference components from multiple public projects in your private project:

## Root Cluster: Patient Encounter (in your private project)

### Column: patient_name
**ReuseComponent**: @FHIR:Patient.name

### Column: arrest_related
**ReuseComponent**: @NIEM:arrest_date

### Column: company_name
**ReuseComponent**: @Default:CompanyName

Your project remains private even when referencing multiple public libraries.

Best Practice: Pick one primary library for your domain, then supplement with others as needed.

When to Copy vs. Reference

Scenario Action Privacy
Need exact NIEM definition Reference Project stays private
Need NIEM-like but with extra validation Copy & Modify Copy lives in your private project
Completely custom business logic Create Custom Lives in your private project
Testing changes before committing Copy to sandbox project Sandbox is also private

Example Workflow: Building an Arrest Report

Step 1: Create project "My Department RMS"

(private to your organization)

Step 2: Reference standard NIEM components

(from public library)

### Column: arrestee_first_name
**ReuseComponent**: @NIEM:person_given_name

### Column: arrestee_dob
**ReuseComponent**: @NIEM:date_representation

### Column: arrest_location_state
**ReuseComponent**: @NIEM:location_state_code

Step 3: Copy & modify for department-specific needs

(in your private project)

  • Copy @NIEM:arrest_agency to your project
  • Add constraint: Must be from your jurisdiction list
  • Rename to arresting_unit in your project

Step 4: Create custom components

(in your private project)

  • internal_case_number (your agency's format)
  • supervisor_approval_status (internal workflow)

Result

  • ✅ NIEM-compliant where it matters (for state/federal sharing)
  • ✅ Customized for your department's workflow
  • Private project - only your team can see it
  • ✅ Standard data model you fully own
  • ✅ Optional: Export XSD/JSON without making project public

Sharing Your Work (Optional)

Your projects are private by default. You have options for sharing:

  1. Export schemas - Share XSD/JSON/SHACL files without making project public
  2. Team access - Invite colleagues to your private project (Pro/Enterprise)
  3. Make project public - Contribute back to community (optional, you control this)

Most users keep projects private and only share exported schemas.


Next Steps


← Back to Getting Started | Documentation Home