7. Nepal-specific rules

This chapter collects the rules that are specific to Nepal and that cause most validation errors for first-time implementers. All URIs and codes on this page are read live from the official NP Core package (np.core 1.0.0); if anything differs from the IG, the IG wins.

Identifiers#

NP Core defines one identifier profile per Nepali identifier. Each fixes the system, and most also fix use = official and a type code:

Identifier system type code Example value
Nepal Citizenship Certificate Number http://moha.gov.np citizenship-number 12-34-56-78901
Nepal Health ID http://fhir.digitalhealth.gov.np/core/NamingSystem/nepal-health-id health-id 12345678901
Nepal Health Insurance ID http://hib.gov.np health-insurance-id HIB-000123456
Nepal Ayurveda Medical Council (NAMC) Identifier http://namc.org.np LN 11111
Nepal National ID http://donidcr.gov.np NI XXX-XXX-XXX-X
Nepal NHFR Organization Identifier http://nhfr.digitalhealth.gov.np FI 1-1-001-0001
Nepal Health Professional Council (NHPC) Identifier http://nhpc.org.np LN 22222
National Health Workforce Registry (NHWR) Identifier http://nhwr.digitalhealth.gov.np NPI NHWR-0001234
Nepal Medical Council (NMC) Identifier http://nmc.org.np MD 12345
Nepal Nursing Council (NNC) Identifier http://nnc.org.np RN 67890
Nepal Pharmacy Council (NPC) Identifier http://nepalpharmacycouncil.org.np RPH 33333
Nepal Passport Number http://nepalpassport.gov.np PPN PA1234567
Nepal Social Security Fund Number http://ssf.gov.np ssf-number 1-01-01-00001234

Rules that apply to all of them:

  • Copy the system exactly. http://donidcr.gov.np/ (trailing slash) or https://… are different systems.
  • Include the type coding shown above; the validator uses system and type to recognise the slice.
  • value is the number as issued. The IG does not impose a format on most values; do not add prefixes that are not part of the number.

Patient: Nepal Health ID and National ID#

  • Nepal Health ID — issued by MoHFS. Every NP Core Patient SHALL have exactly one (Patient.identifier:healthId, cardinality 1..1).
  • National ID — issued by DONIDCR (Department of National ID and Civil Registration). Recommended when known (0..1).
  • Citizenship certificate number, health insurance (HIB) number, passport number and SSF number are optional slices, each 0..1.
"identifier": [
  {
    "use": "official",
    "type": { "coding": [ { "system": "http://fhir.digitalhealth.gov.np/core/CodeSystem/np-core-identifier-type", "code": "health-id" } ] },
    "system": "http://fhir.digitalhealth.gov.np/core/NamingSystem/nepal-health-id",
    "value": "12345678901"
  },
  {
    "use": "official",
    "type": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/v2-0203", "code": "NI" } ] },
    "system": "http://donidcr.gov.np",
    "value": "…national ID number…"
  }
]

See NP Core Patient.

Practitioner: council registration or NHWR (rule np-prac-1)#

A Practitioner SHALL carry at least one professional council registration (NMC, NNC, NAMC, NHPC or NPC) or an NHWR (National Health Workforce Registry) code. The NHWR code is the health worker's national identifier, issued by MoHFS; council numbers come from the respective councils.

"identifier": [ {
  "use": "official",
  "type": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/v2-0203", "code": "MD" } ] },
  "system": "http://nmc.org.np",
  "value": "12345"
} ]

See NP Core Practitioner.

Health facilities: NHFR code#

Registered health facilities are represented with NP Core Health Facility (an Organization profile), not the generic NP Core Organization. A health facility SHALL have exactly one NHFR code (identifier:nhfrCode) with system http://nhfr.digitalhealth.gov.np, and its type must carry the facility authority, authority level, ownership and facility type codings. Look at the official example in the Profiles browser.

Encounter identifiers (rule np-enc-1)#

Encounter numbers are local to a facility, so NP Core namespaces them under the facility's NHFR code: an Encounter SHALL have at least one identifier whose system is http://nhfr.digitalhealth.gov.np/<your NHFR code> (with a non-empty code after the slash).

"identifier": [ { "system": "http://nhfr.digitalhealth.gov.np/<NHFR code>", "value": "OPD-2025-000123" } ]

Address coding#

Nepal has 7 provinces, 77 districts and 753 local levels. NP Core Address keeps the normal FHIR text fields and adds three coded extensions:

Extension URL Value set
Province http://fhir.digitalhealth.gov.np/core/StructureDefinition/np-core-province Nepal Province ValueSet
District http://fhir.digitalhealth.gov.np/core/StructureDefinition/np-core-district Nepal District ValueSet
Local level http://fhir.digitalhealth.gov.np/core/StructureDefinition/np-core-local-level Nepal Local Level ValueSet

All three use codes from the code system http://fhir.digitalhealth.gov.np/core/CodeSystem/nepal-administrative-location.

Provinces:

Code Display System
1 Koshi Province http://fhir.digitalhealth.gov.np/core/CodeSystem/nepal-administrative-location
2 Madhesh Province http://fhir.digitalhealth.gov.np/core/CodeSystem/nepal-administrative-location
3 Bagmati Province http://fhir.digitalhealth.gov.np/core/CodeSystem/nepal-administrative-location
4 Gandaki Province http://fhir.digitalhealth.gov.np/core/CodeSystem/nepal-administrative-location
5 Lumbini Province http://fhir.digitalhealth.gov.np/core/CodeSystem/nepal-administrative-location
6 Karnali Province http://fhir.digitalhealth.gov.np/core/CodeSystem/nepal-administrative-location
7 Sudurpashchim Province http://fhir.digitalhealth.gov.np/core/CodeSystem/nepal-administrative-location

Rules:

  • country is required (ISO 3166 two-letter code, e.g. NP).
  • The province, district and local-level extensions SHALL only be used when country is NP (rule np-addr-1). For a foreign address, omit them.
  • Keep the human-readable state, district, city and line as well — receivers display them.
  • Make sure the codes are consistent (the district belongs to the province, the local level to the district).

See the worked example in Validate your first Patient and NP Core Address.

Bikram Sambat dates#

Nepal commonly records dates in Bikram Sambat (BS). FHIR dates are Gregorian. NP Core's rules (Calendar and dates):

  1. All date, dateTime and instant values SHALL be Gregorian (AD). Convert BS to AD before sending. Never put a BS year (e.g. 2081) in a FHIR date.
  2. To keep the original BS value, add the Bikram Sambat Date extension (http://fhir.digitalhealth.gov.np/core/StructureDefinition/np-core-bikram-sambat-date) with valueString.
  3. The BS string has the form YYYY, YYYY-MM or YYYY-MM-DD; days may go up to 32 because BS months have 29–32 days. Match the precision of the Gregorian value.
  4. For a dateTime with a time, the BS date SHALL be the Asia/Kathmandu local date, not the UTC date.
  5. The extension is not allowed on instant.
  6. Populate it only from a real BS capture — do not compute it after the fact.
  7. Nepal time is UTC +05:45. A dateTime with a time needs a timezone, e.g. 2026-05-10T09:00:00+05:45.

On a primitive element, the extension goes in the element's underscore twin:

"birthDate": "1990-05-15",
"_birthDate": {
  "extension": [ { "url": "http://fhir.digitalhealth.gov.np/core/StructureDefinition/np-core-bikram-sambat-date", "valueString": "2047-02-01" } ]
}

On an Encounter period, put it on start and end separately (_start, _end).

Use a tested converter

BS month lengths vary from year to year and are published in official tables. Use a well-tested conversion library and test edge cases such as month ends and the BS new year.

Caste / ethnicity#

NP Core Patient may carry the Caste / Ethnicity extension (http://fhir.digitalhealth.gov.np/core/StructureDefinition/np-core-caste-ethnicity) with a valueCoding from Nepal Caste / Ethnicity ValueSet:

Code Display
1 Dalit
2 Janajati
3 Madheshi
4 Muslim
5 Brahman/Kshetri
6 Others
"extension": [ {
  "url": "http://fhir.digitalhealth.gov.np/core/StructureDefinition/np-core-caste-ethnicity",
  "valueCoding": { "system": "http://fhir.digitalhealth.gov.np/core/CodeSystem/nepal-caste-ethnicity", "code": "2", "display": "Janajati" }
} ]

Sensitive data

Caste/ethnicity is special-category personal data. The IG says it SHALL only be recorded where there is a lawful basis, SHOULD be self-identified by the person, and SHALL be protected with access controls. The extension is optional — never required for conformance.

Other Nepal terminology#

Code system Used for
Health Facility Type CodeSystem Type of health facility
Health Facility Ownership CodeSystem Facility ownership
Health Facility Authority CodeSystem / Facility Authority Level CodeSystem Governing authority and level
Encounter Type CodeSystem Encounter types
NP Core Identifier Type CodeSystem Nepal-specific identifier types
Nepal Drug Interim drug codes (see IG)

Browse all value sets with their codes in the Profiles browser.