Bundles and conventions
Everything that crosses the exchange is one FHIR R4 Bundle of type collection, built to the NRCeS profiles for NHCX. The bundles in this reference are generic: any payer on the exchange takes them, private insurers and TPAs regulated by IRDAI as well as government schemes. Each chapter shows the generic bundle for one exchange in one direction, then what PMJAY changes and what PMJAY requires on top. The package's sample collection is read the same way: a provider's bundles are either examples written to this specification or captures from the sandbox run against the PMJAY payer, and a payer's are either the generic payer's or PMJAY's own. This chapter holds the rules every bundle obeys before any exchange is considered.
Rules
1. Bundle type
collection, not document and not transaction. Entries are resources placed directly, with no request or response elements. The open-protocol page describes claim objects as document bundles with a root Composition; the exchange accepts collection, and a Composition appears only at the head of an embedded clinical record.
2. Profiles
Declare the NRCeS profile in meta.profile on every resource you send, for example https://nrces.in/ndhm/fhir/r4/StructureDefinition/Claim. Declare only profiles NRCeS publishes: there is no NRCeS QuestionnaireResponse profile, so a QuestionnaireResponse takes the base FHIR definition. Do not require a profile on what you receive: payer-generated resources often carry none.
3. References
Resources in one bundle reference each other by urn:uuid:, with the same UUID as the entry's fullUrl. Absolute URLs are also accepted. Parse both.
4. Timestamps
ISO 8601 with the Indian offset, +05:30. UTC fails validation. Read Bundle.timestamp for the send time; meta.lastUpdated can be stale.
5. Identifier types come from two systems
PMJAY, ABHA, CLN, UTR, HPID and HPIN from NRCeS at https://nrces.in/ndhm/fhir/r4/CodeSystem/ndhm-identifier-type-code. NPI for a hospital's HFR ID, NIIP for a payer's registry ID, NH for a plan, MB for a member number, and JHN, MD and MR from HL7 at http://terminology.hl7.org/CodeSystem/v2-0203. Take the system from the exchange you are building, not from the code.
6. The HFR ID inside the bundle
Must equal the registry ID on the sender's participant record, whichever element carries it.
7. Sequences link things
A Claim.item points at its diagnosis, procedure, care team and supporting information by sequence number, not by reference. Resolve through the sequence field, never by array position.
8. Documents arrive two ways
A supporting-info entry carries the file inline in valueAttachment, or points with valueReference at a resource in the same bundle: a DocumentReference, or the Composition heading an embedded ABDM record. One document per entry, 2 MB each, 20 MB per claim or preauthorisation bundle. Plan responses run past 20 MB; size clients and proxies for 25 MB.
9. Category decides structured or not
Supporting-info categories DIA, HDS, CD and INF take a reference to a structured record. POI, POA, DOB, DEF, FIR, ATT and MB take an attachment.
10. Encode attachments once
Base64 the file once. On receipt, check the decoded bytes for a file signature before trusting them, because double-encoded attachments are in circulation and render as a blank page.
11. One Claim, three uses
Claim.use is preauthorization, claim or predetermination, and nothing else changes. pre-auth and pre-det are not codes.
12. Codes and displays match the plan
Character for character, including the plan's own misspellings. A payer rejects a package whose display differs from the plan's.
13. Match on the code, not the system
The same package code appears under different systems in different exchanges. Match incoming codes on the code, and emit the system the exchange you are building expects.
Resources by exchange
Each resource the bundles carry, its NRCeS profile, and the exchanges that use it.
Claim
NRCeS profile: Claim.
- Preauthorisation request
- Preauthorisation enhancement
- Preauthorisation query and answer
- Claim request
- Claim query and answer
- Communication
- Predetermination, status and search
ClaimResponse
NRCeS profile: ClaimResponse.
- Preauthorisation response
- Preauthorisation query and answer
- Claim response
- Claim query and answer
- Cancel, reprocess and shortfall
- Predetermination, status and search
Communication
NRCeS profile: Communication.
CommunicationRequest
NRCeS profile: CommunicationRequest.
Coverage
NRCeS profile: Coverage.
- Coverage eligibility request
- Coverage eligibility response
- Preauthorisation request
- Preauthorisation response
- Preauthorisation enhancement
- Preauthorisation query and answer
- Claim request
- Claim response
- Claim query and answer
- Cancel, reprocess and shortfall
- Communication
- Predetermination, status and search
CoverageEligibilityRequest
NRCeS profile: CoverageEligibilityRequest.
CoverageEligibilityResponse
NRCeS profile: CoverageEligibilityResponse.
InsurancePlan
NRCeS profile: InsurancePlan.
- Insurance plan response
- Insurance plan response, package-based
- Insurance plan response, coverage-based
Location
NRCeS profile: Location.
Organization
NRCeS profile: Organization.
- Coverage eligibility request
- Coverage eligibility response
- Insurance plan response
- Insurance plan response, package-based
- Insurance plan response, coverage-based
- Preauthorisation request
- Preauthorisation response
- Preauthorisation enhancement
- Preauthorisation query and answer
- Claim request
- Claim response
- Claim query and answer
- Cancel, reprocess and shortfall
- Payment notice and acknowledgement
- Communication
- Predetermination, status and search
Patient
NRCeS profile: Patient.
- Coverage eligibility request
- Coverage eligibility response
- Preauthorisation request
- Preauthorisation response
- Preauthorisation enhancement
- Preauthorisation query and answer
- Claim request
- Claim response
- Claim query and answer
- Cancel, reprocess and shortfall
- Communication
- Predetermination, status and search
PaymentNotice
NRCeS profile: PaymentNotice.
PaymentReconciliation
NRCeS profile: PaymentReconciliation.
Practitioner
NRCeS profile: Practitioner.
- Preauthorisation request
- Preauthorisation enhancement
- Preauthorisation query and answer
- Claim request
- Claim query and answer
- Communication
- Predetermination, status and search
PractitionerRole
NRCeS profile: PractitionerRole.
Procedure
NRCeS profile: Procedure.
- Preauthorisation request
- Preauthorisation enhancement
- Preauthorisation query and answer
- Claim request
- Claim query and answer
- Predetermination, status and search
Questionnaire
- Insurance plan response
- Insurance plan response, package-based
- Insurance plan response, coverage-based
QuestionnaireResponse
- Preauthorisation request
- Preauthorisation enhancement
- Preauthorisation query and answer
- Claim request
- Claim query and answer
Task
NRCeS profile: Task.
- Insurance plan request
- Preauthorisation query and answer
- Claim query and answer
- Cancel, reprocess and shortfall
- Payment notice and acknowledgement
- Communication
- Predetermination, status and search
Profiles in use
The profiles the bundles declare in meta.profile, each linked to its published definition.
http://hl7.org/fhir/StructureDefinition/CoverageEligibilityResponsehttps://nrces.in/ndhm/fhir/r4/StructureDefinition/Claimhttps://nrces.in/ndhm/fhir/r4/StructureDefinition/ClaimResponsehttps://nrces.in/ndhm/fhir/r4/StructureDefinition/Communicationhttps://nrces.in/ndhm/fhir/r4/StructureDefinition/CommunicationRequesthttps://nrces.in/ndhm/fhir/r4/StructureDefinition/Coveragehttps://nrces.in/ndhm/fhir/r4/StructureDefinition/CoverageEligibilityRequesthttps://nrces.in/ndhm/fhir/r4/StructureDefinition/CoverageEligibilityResponsehttps://nrces.in/ndhm/fhir/r4/StructureDefinition/InsurancePlanhttps://nrces.in/ndhm/fhir/r4/StructureDefinition/Locationhttps://nrces.in/ndhm/fhir/r4/StructureDefinition/Organizationhttps://nrces.in/ndhm/fhir/r4/StructureDefinition/Patienthttps://nrces.in/ndhm/fhir/r4/StructureDefinition/Practitionerhttps://nrces.in/ndhm/fhir/r4/StructureDefinition/PractitionerRolehttps://nrces.in/ndhm/fhir/r4/StructureDefinition/Procedurehttps://nrces.in/ndhm/fhir/r4/StructureDefinition/QuestionnaireResponse, which NRCeS does not publish; base FHIR QuestionnaireResponsehttps://nrces.in/ndhm/fhir/r4/StructureDefinition/Task
PMJAY
The generic bundle above is what every payer takes, IRDAI-regulated insurers and TPAs included. PMJAY takes it with the changes and requirements below.
What PMJAY specifies
- Payer-generated bundles carry the case number as
Bundle.identifier, under the payer's own host. The host arrives spelled bothpayer.pmjay.nha.gov.inandpayer.pmajy.nha.gov.in; echo the spelling that arrived. - Payer-generated bundles tag every resource
SUBSETTEDfromhttp://terminology.hl7.org/CodeSystem/v3-ObservationValue, "Resource encoded in summary mode". It marks a projection of the payer's record, not an error. - Identifier systems on the payer's side are NHA hosts such as
https://hcx.pmjay.gov.in/v1/preauthorizationandhttps://payer.nha.gov.in. - A preauthorisation with its embedded clinical records runs to around 30 entries, a claim to over 40, a query answer to nearly a hundred.
What PMJAY requires
- Element ids on every Claim bundle: the
Claimits claim number, eachitemItem/n, eachprocedureProcedure/n, eachsupportingInfoSupportingInformation/n;1forPatient,Coverageand the providerOrganization,2for the payerOrganization. Refused withPAYR-1027otherwise. - The
Practitionercarries the HPR id typedHPINunderhttps://hpr.abdm.gov.in, besideHPIDand the registration number typedMD. Refused withPAYR-1083otherwise. - Items coded from the package master:
item.categoryis the master's specialty code, and the ward tier rides asitem.modifierwith the master's stratification code. - Every
supportingInfocarries asequence, numbered from 1 with no gaps. Refused withPAYR-1019otherwise. - Attachments as
application/pdf,application/jpg,application/jpeg,application/pngorapplication/fhir+json. Anything else is refused withPAYR-1008.