IM1 - Bulk Extract — Overview
What is IM1?
Section titled “What is IM1?”IM1 - Bulk Extract (Interface Mechanism 1) is EMIS’s bulk data extract service. It provides partners and data consumers with structured, agreement-scoped snapshots of clinical and administrative data held in EMIS Web GP systems.
IM1 produces CSV files every run and delivers them to a per-consumer SFTP location. There are two types of files:
Bulk files are a full set of data as it exists at that point in time. They are sent to a consumer when:
- A new agreement is created and has become valid
- An invalid agreement has become valid again after a period of time
- A consumer requests a re-bulk (a backfill)
Delta files are a smaller set of data representing the differences between one run and the previous run. The changes consist of additions, changes, and/or deletions in between, providing consumers with incremental updates.
What Data Is Included?
Section titled “What Data Is Included?”Each IM1 extract is scoped to an agreement (a data-sharing agreement between a GP practice and a partner organisation). The extract covers the following table groups:
Administrative
Section titled “Administrative”| Table | Description |
|---|---|
Admin_Patient | Core patient demographics (name, DOB, address, NHS number, registration status) |
Admin_PatientHistory | Historical patient registration status changes |
Admin_Organisation | GP practice / organisation details |
Admin_Location | Physical locations associated with an organisation |
Admin_OrganisationLocation | Mapping of organisations to their locations |
Admin_UserInRole | Clinical and administrative staff user-role assignments |
Appointments
Section titled “Appointments”| Table | Description |
|---|---|
Appointment_Session | Clinic / appointment session definitions |
Appointment_SessionUser | Clinicians linked to a session |
Appointment_Slot | Individual appointment slots (booked, available, blocked) |
Care Record
Section titled “Care Record”| Table | Description |
|---|---|
CareRecord_Consultation | Top-level consultation events |
CareRecord_Diary | Diary / recall entries linked to consultations |
CareRecord_Observation | Clinical observations, measurements, and coded entries |
CareRecord_ObservationReferral | Referral information associated with observations |
CareRecord_Problem | Active and resolved problem list entries |
Prescribing
Section titled “Prescribing”| Table | Description |
|---|---|
Prescribing_DrugRecord | Repeat / acute drug prescribing records |
Prescribing_IssueRecord | Individual prescription issue events |
Reference Data
Section titled “Reference Data”| Table | Description |
|---|---|
Coding_ClinicalCode | Clinical code reference data (Read, SNOMED CT, EMIS codes) |
Coding_DrugCode | Drug code reference data (BNF, dm+d mappings) |
| Table | Description |
|---|---|
Audit_PatientAudit | Audit trail of patient record access and changes |
Audit_RegistrationAudit | Audit trail of patient registration events |
Agreement
Section titled “Agreement”| Table | Description |
|---|---|
Agreement_SharingOrganisation | Organisations participating in a data-sharing agreement |
How Is Data Delivered to the Consumer?
Section titled “How Is Data Delivered to the Consumer?”flowchart LR
A[EMIS Web] --> B[IM1 Extract]
B --> C[Encrypted CSV Files]
C --> D[SFTP Endpoint]
D --> E[Consumer]
CSV files are generated for each feed and agreement, encrypted with the consumer’s GPG public key, and placed into the consumer’s dedicated SFTP location. Consumers collect the files using a standard SFTP client.
Each run produces one .csv.gpg file per table, per agreement.
GPG Encryption
Section titled “GPG Encryption”All CSV files are encrypted with GPG (GNU Privacy Guard) before delivery.
How It Works
Section titled “How It Works”- During onboarding, consumers are required to provide their GPG public key, which can be uploaded via the IM1 Portal.
- Every CSV file is encrypted with that key before being placed on the SFTP location.
- Only the holder of the corresponding private key can decrypt the files.
Key Expiry
Section titled “Key Expiry”GPG keys have an expiry date set by the key holder at the time of generation. It is the consumer’s responsibility to monitor their key’s expiry date and provide an updated public key before expiry. If a key expires, files will no longer be deliverable until a valid replacement key is uploaded via the IM1 Portal.
Decrypting on Receipt
Section titled “Decrypting on Receipt”Partners can decrypt received files with any standard GPG client:
gpg --decrypt Admin_Patient_20260130.csv.gpg > Admin_Patient_20260130.csvEnsure your private key is imported into your local GPG keyring before attempting decryption.
SFTP Delivery
Section titled “SFTP Delivery”Files are delivered to a per-agreement SFTP endpoint that consumers access using SSH.
Connecting to SFTP
Section titled “Connecting to SFTP”- During onboarding, consumers are asked to upload their SSH public key via the IM1 Portal.
- Consumers connect to the SFTP endpoint using the matching SSH private key.
- Any standard FTP client (such as FileZilla) can be used to connect, browse, and download files.
- Once connected, consumers can see only the files for their own feeds and agreements.
File Naming Convention
Section titled “File Naming Convention”Delivered files follow the pattern:
<TableName>_<YYYY-MM-DD>[_<batch>].csv.gpgFor example:
Admin_Patient_2026-01-30.csv.gpgCareRecord_Observation_2026-01-30_001.csv.gpgRebulk files may be split into numbered batches (e.g. _001, _002) when the
dataset exceeds size thresholds.
Additional Information
Section titled “Additional Information”Support and Onboarding
Section titled “Support and Onboarding”For access requests, key management, or delivery issues, contact the EMIS Partner Integration team through your agreed support channel, or raise a support ticket via the EMIS Partner Portal.