MVS Health EHI Export Data Dictionary
Public data dictionary for the native MVS Health electronic health information (EHI) export — export types, file layout, per-domain resource catalog, authorization, and update process.
This page documents how the MVS Health application exports electronic health information (EHI) so that a patient's data, or a full patient population's data, can be retrieved in a computable form. It is published as public, no-login transparency documentation.
This page describes the implemented native export behavior and is intended to support review of MVS Health's export capability. It is evidence-supporting documentation, not a certification statement, and it does not by itself assert conformance with any specific program criterion. Coverage is defined by the export catalog in the application source; where a data class cannot yet be exported, the export surfaces an explicit coverage warning rather than omitting it silently.
Export Types
MVS Health exposes two native EHI export paths.
| Export | Procedure | Route | Scope | Authorization |
|---|---|---|---|---|
| Single-patient export | clinical.export | GET /clinical/patients/:patientId/export | One patient's EHI | patient:export |
| Population export | clinical.populationExport | POST /clinical/population/export | All patients in the tenant | bulk-export:write |
Both paths read only tenant-scoped MVS Health data for the authenticated organization, are permission-gated, and write an audit record for each export attempt (success and failure).
- The single-patient export returns a native JSON document (
format: "native-json",exportType: "single-patient") covering the same domains as the population export, scoped to a single patient. Data classes that cannot be reached from a single patient are omitted from the single-patient path rather than returned as organization-wide rows. - The population export is the authoritative all-EHI path. It returns a manifest plus per-domain NDJSON sections for the entire tenant population.
Population Export File Layout
The population export returns a manifest and a set of per-domain section files. The manifest format identifier is:
healthos-native-population-v1Manifest
The manifest is a JSON object with the following shape:
{
"format": "healthos-native-population-v1",
"exportId": "uuid",
"exportType": "all-patients",
"organizationId": "org id",
"generatedAt": "ISO-8601 timestamp",
"resourceCount": 0,
"resourceCounts": { "Patient": 0, "Encounter": 0 },
"domainCounts": { "coreClinical": 0, "billingRcm": 0 },
"files": [
{
"path": "sections/coreClinical/Patient.ndjson",
"format": "ndjson",
"resourceType": "Patient",
"domain": "coreClinical",
"count": 0,
"sha256": "hex digest of the section content"
}
],
"warnings": [
{
"id": "inventory id",
"ehiClass": "human-readable class",
"sourceStore": "source table",
"status": "coverage status",
"remediation": "what is required to close the gap"
}
],
"warningIds": ["inventory id"]
}resourceCountsis keyed byresourceType;domainCountsis keyed bydomain.resourceCountis the total record count across all sections.- Each entry in
filescarries acount(records in the section) and asha256(a SHA-256 hex digest of the exact section content), so a reviewer can verify each file independently. warnings/warningIdslist coverage gaps for the export (see Coverage Warnings).
Section files
Each domain resource type is emitted as one NDJSON file (one JSON record per line):
sections/{domain}/{resourceType}.ndjsonThe export can be consumed two ways:
- As the
filesarray, where each file includes its NDJSONcontentinline alongside itscountandsha256. - As a
bundleobject containing themanifestand asectionsmap ofpathto NDJSON content.
Per-Domain Data Dictionary
The export is organized into domains. coreClinical is emitted directly; the remaining domains are emitted from the native export catalog. The resource types below are the manifest section keys.
coreClinical
| Resource type | EHI class |
|---|---|
| Patient | Patient demographics and identifiers |
| Condition | Conditions and problems |
| MedicationStatement | Medication statements |
| AllergyIntolerance | Allergies and reactions |
| Observation | Vitals, labs, and observations |
| Procedure | Procedures |
| Encounter | Encounters and visit summaries |
| ServiceRequest | Service requests and referrals |
| CareTeam | Care teams |
| SocialHistory | Social history |
| RelatedPerson | Emergency contacts |
| Immunization | Immunizations |
coverageEligibility
| Resource type | EHI class |
|---|---|
| Coverage | Coverage records |
| EligibilityCheck | Eligibility checks |
| CoordinationOfBenefitsCheck | Coordination-of-benefits checks |
| InsuranceDiscoveryCheck | Insurance discovery checks |
documentsStorage
| Resource type | EHI class |
|---|---|
| DocumentReference | Patient document metadata and storage-backed bytes |
| ExternalFHIRBundle | External FHIR bundle storage objects |
careManagement
| Resource type | EHI class |
|---|---|
| ChartNote | Chart notes |
| Consent | Patient consents |
| Communication | Clinical communications |
| QuestionnaireResponse | Questionnaire responses |
| ImagingStudy | Imaging studies |
| CareGap | Care gaps |
| CareGapOutreach | Care gap outreach |
| ClinicalTask | Clinical tasks |
| PriorAuthRequest | Prior authorization requests |
| PriorAuthEvent | Prior authorization events |
| PriorAuthDtrResponse | Prior authorization DTR responses |
clinicalExtended
| Resource type | EHI class |
|---|---|
| CareTeamMember | Care team members |
| EncounterDiagnosis | Encounter diagnoses |
| EncounterProcedure | Encounter procedures |
| MedicationAdministration | Medication administration |
| MedicationDispense | Medication dispense |
communications
| Resource type | EHI class |
|---|---|
| Fax | Faxes |
| FaxAttachment | Fax attachments |
| FaxStatusHistory | Fax status history |
| SecureThread | Secure message threads |
| SecureMessage | Secure messages |
| SecureAttachment | Secure message attachments |
| SecureShare | Secure shares |
| SecureShareAccess | Secure share access |
| SecureMessagingAuditLog | Secure messaging audit logs |
| SmsConversation | SMS conversations |
| SmsMessage | SMS messages |
| SurveyResponse | Survey responses |
hieFhir
| Resource type | EHI class |
|---|---|
| ExternalFHIRResource | External FHIR resources |
| AprimaEntityStage | Aprima staged entities |
| AprimaPatientStage | Aprima staged patients |
| ImportedCarePlan | Imported care plans |
| HieConsent | HIE consent |
| ExternalDataConflict | External data conflicts |
| ImportedDiagnosticReport | Imported diagnostic reports |
| ExternalFHIRDocumentSection | External FHIR document sections |
| ImportedFamilyHistory | Imported family history |
| ImportedGoal | Imported patient goals |
| ExternalFHIRIdentifier | External FHIR identifiers |
| PatientMatchReview | External patient match reviews |
| ImportedEncounter | Imported patient encounters |
| PatientSourceLink | External patient source links |
| MetriportQueryHistory | Metriport query history |
| ExternalFHIRReferenceEdge | External FHIR reference graph |
| ImportedReferral | Imported referrals |
| ImportedScreening | Imported screenings |
| ImportedSurgicalHistory | Imported surgical history |
erx
| Resource type | EHI class |
|---|---|
| PrescriptionTransaction | Prescription transactions |
| PrescriptionAuditLog | Prescription audit logs |
| ErxRefillRequest | eRx refill requests |
| ErxRxChangeRequest | eRx change requests |
| ErxPriorAuthCase | eRx prior authorization cases |
| ErxPriorAuthAttachment | eRx prior authorization attachments |
| DoseSpotSyncState | DoseSpot sync state |
billingRcm
| Resource type | EHI class |
|---|---|
| ClaimSubmission | Claim submissions |
| EncounterCharge | Encounter charges |
| ArLedgerEntry | AR ledger entries |
| PatientPayment | Patient payments |
| ArTransaction | AR transactions |
| ClaimExportBatch | Claim export batches |
| ClaimExportFile | Claim export files |
| DenialWorkItem | Denial work items |
| InsuranceEligibilitySnapshot | Insurance eligibility snapshots |
| Era | ERAs |
| EraClaim | ERA claims |
| EraPayment | ERA payments |
| EraServiceLine | ERA service lines |
| PracticePatientCase | Practice patient cases |
| ServiceLine | Service lines |
| StatementLine | Statement lines |
schedulingAndIntake
| Resource type | EHI class |
|---|---|
| Appointment | Appointments |
| TelehealthSession | Telehealth sessions |
| WaitlistEntry | Waitlist |
| PatientView | Patient views |
| PhoneVerification | Phone verifications |
| IntakeSubmission | Intake submissions |
| IntakeToken | Intake tokens |
| ExcuseNote | Excuse notes |
| WaitingRoomEntry | Waiting room entries |
Stored Documents and Sensitive Fields
Stored files (documents, fax and message attachments, consent documents, X12 claim batch files, and similar) are not emitted as raw bytes, download URLs, or storage keys. Instead, each owning record carries a computable, access-controlled reference:
{
"storageRepresentation": {
"hasStoredObject": true,
"fileSize": 12345,
"mimeType": "application/pdf",
"status": "available"
}
}This preserves the fact that a stored object exists, its size, type, and status, so the export remains computable and reconcilable, while raw bytes, URLs, and storage keys are intentionally omitted. Credentials and tokens are always stripped. Free-text and narrative fields (note bodies, message bodies, transcripts, raw payloads) are redacted to computable metadata (for example { "redacted": true, "length": 128 }) so record and field structure is preserved without emitting the underlying narrative content.
Coverage Warnings
The population export never silently drops a data class. When a class is not exported as its own section, the manifest includes a coverage warning with:
id— the inventory identifier for the data class.ehiClass— a human-readable description.sourceStore— the underlying source.status— the coverage status (for examplemetadata-only,runtime-evidence-required,scope-decision-required, ornot-available).remediation— what is required to close the gap.
Reviewers should retain the warningIds list as the explicit set of known coverage gaps for a given export.
Authorization
Exports are available only to authorized users of the tenant.
- Single-patient export requires the
patient:exportpermission. - Population export requires the
bulk-export:writepermission.
The in-app population export action is shown only to users whose role grants bulk-export:write, and the server independently enforces the same permission on every request. Every export attempt is written to the audit log with the acting user, organization, resource counts, and outcome.
No Fee and No Information Blocking
MVS Health does not charge a fee for a patient or an authorized user to obtain that patient's EHI through these export paths, and does not impose access restrictions that would constitute information blocking. Export is a first-class, self-service capability in the application for users with the appropriate permission.
Update Process
This page is updated when the export catalog changes. Specifically, when a resource type or domain is added to, or removed from, the export catalog in the application source, the corresponding per-domain data dictionary table above is updated to match, and any change to the manifest shape or file layout is reflected here. The export catalog in source remains the authoritative definition of coverage; this page mirrors it for public transparency.