npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

medicaltest

v1.0.0

Published

Open standard dataset and programmatic query engine for visa medical examination requirements, accredited panel physician networks, and clinical test preparation guidelines across 30+ destinations.

Readme

visa-medical-requirements

npm version License: MIT TypeScript Zero Dependencies Node.js

An open-source, zero-dependency programmatic query engine and standard dataset for international visa medical examination requirements, accredited panel physician networks (Wafid / GAMCA, eMedical, CDC Panel, IOM), and clinical test preparation guidelines across 30+ immigration destinations.


🌐 Live Interactive Tools & Demos

If you need real-time verification, interactive search, or patient-facing calculators, explore the live tools hosted by MedicalTest.online:


🚀 Features

  • Comprehensive Immigration Health Data: Covers GCC countries (UAE, Saudi Arabia, Qatar, Kuwait, Oman), UK, Canada, USA, Australia, New Zealand, Singapore, Malaysia, Germany, South Korea, China, and more.
  • Accredited Network Mapping: Identifies required health authority systems (Wafid / GAMCA, eMedical, CDC DGMH Panel Physicians, IOM, FOMEMA, etc.).
  • Clinical Preparation & Fasting Guidelines: Built-in patient preparation rules for blood tests (fasting hours, water intake, medication rules, and imaging instructions).
  • Fuzzy & Multi-format Search: Query by English country name, ISO 3166-1 alpha-2, ISO alpha-3, or common aliases ('UAE', 'KSA', 'UK', 'USA', 'NZ').
  • Zero Dependencies: Lightweight, tree-shakeable, and runs anywhere (Node.js, Deno, Bun, Cloudflare Workers, modern browsers).
  • Full TypeScript Support: Shipped with complete, strict .d.ts declarations and JSDocs.
  • Dual ESM & CommonJS: Works out-of-the-box with both import and require.

📦 Installation

# Using npm
npm install visa-medical-requirements

# Using yarn
yarn add visa-medical-requirements

# Using pnpm
pnpm add visa-medical-requirements

💡 Quick Start

ES Modules (ESM)

import {
  getVisaRequirements,
  getAccreditedNetwork,
  getTestPreparation,
  formatRequirementsSummary
} from 'visa-medical-requirements';

// 1. Look up visa requirements by Country or ISO code
const uaeReqs = getVisaRequirements('UAE');
console.log(uaeReqs.country); // "United Arab Emirates"
console.log(uaeReqs.systemType); // "Wafid / GAMCA"
console.log(uaeReqs.requiredTests);
// [
//   "Chest X-Ray (Pulmonary Tuberculosis screening)",
//   "HIV 1 & 2 Antibody Screening",
//   "Hepatitis B Surface Antigen (HBsAg)...",
//   "Hepatitis C Antibody (HCV)",
//   "Syphilis Serology (VDRL / RPR / TPHA)",
//   ...
// ]

// 2. Retrieve accredited authority & portal URL
const network = getAccreditedNetwork('Saudi Arabia');
console.log(network);
// {
//   authority: "Wafid (GAMCA) / Ministry of Health (KSA)",
//   system: "Wafid / GAMCA",
//   portalUrl: "https://wafid.com"
// }

// 3. Clinical test preparation guidance
const glucosePrep = getTestPreparation('fasting-blood-glucose');
console.log(glucosePrep.fastingHours); // 8
console.log(glucosePrep.waterAllowed); // true
console.log(glucosePrep.medicationGuidance); // "Hold morning diabetes medications..."

// 4. Generate a human-readable text summary
console.log(formatRequirementsSummary(uaeReqs));

CommonJS (CJS)

const {
  getVisaRequirements,
  getMandatoryTests,
  getTestPreparation
} = require('visa-medical-requirements');

const canadaReqs = getVisaRequirements('Canada');
console.log(canadaReqs.systemType); // "eMedical"
console.log(getMandatoryTests('CA'));

TypeScript Support

import {
  getVisaRequirements,
  VisaRequirement,
  TestPreparation
} from 'visa-medical-requirements';

const req: VisaRequirement | undefined = getVisaRequirements('GB');
if (req) {
  console.log(`Certificate validity: ${req.certificateValidityMonths} months`);
}

🛠️ API Reference

getVisaRequirements(countryOrIso: string): VisaRequirement | undefined

Retrieves detailed visa medical requirements by country name (e.g. 'United Arab Emirates', 'Canada'), ISO2 ('AE', 'CA'), ISO3 ('ARE', 'CAN'), or alias ('UAE', 'KSA', 'UK').

listSupportedDestinations(): DestinationSummary[]

Returns an array of all supported destinations with their region, accredited system, test count, and canonical web verification URL.

filterVisaRequirements(filter: RequirementFilter): VisaRequirement[]

Filters requirements by region (e.g. 'Middle East (GCC)', 'Europe'), system type ('eMedical', 'Wafid / GAMCA'), or whether fasting is required.

getAccreditedNetwork(countryOrIso: string)

Returns the accredited health authority, system type, and official portal URL for appointment booking.

getMandatoryTests(countryOrIso: string): string[]

Returns an array of mandatory laboratory and radiological test names for the specified country.

getVaccinations(countryOrIso: string): string[]

Returns mandatory or recommended immunizations (e.g. Meningococcal for KSA, MMR/Polio for US CDC).

getTestPreparation(testIdOrName: string): TestPreparation | undefined

Retrieves fasting hours, hydration advice, medication instructions, and patient tips for clinical tests (e.g. 'fasting-blood-glucose', 'lipid-profile', 'chest-x-ray', 'kidney-function-test', 'ultrasound-abdomen').

searchRequirements(query: string): VisaRequirement[]

Performs a multi-field keyword search across destination names, tests, vaccines, notes, and authorities.

formatRequirementsSummary(req: VisaRequirement): string

Formats a comprehensive human-readable summary block with official sources and MedicalTest.online verification links.


🗺️ Supported Destinations & Systems

| Destination | ISO | Accredited System | Primary Health Authority | Fasting | Validity | Live Verification | | :--- | :--- | :--- | :--- | :---: | :---: | :--- | | United Arab Emirates | AE | Wafid / GAMCA | DHA / MOHAP / SEHA | No | 3 Mo | Check Online | | Saudi Arabia | SA | Wafid / GAMCA | Ministry of Health KSA | Yes | 2 Mo | Check Online | | Qatar | QA | Wafid / GAMCA | Qatar Visa Centers (QVC) | No | 3 Mo | Check Online | | Kuwait | KW | Wafid / GAMCA | Kuwait Ministry of Health | No | 2 Mo | Check Online | | Oman | OM | Wafid / GAMCA | Ministry of Health Oman | No | 3 Mo | Check Online | | United Kingdom | GB | IOM | UKVI Approved Clinics | No | 6 Mo | Check Online | | Canada | CA | eMedical | IRCC Panel Physicians | No | 12 Mo | Check Online | | United States | US | CDC Panel | CDC DGMH Panel Physicians | No | 6 Mo | Check Online | | Australia | AU | eMedical | Department of Home Affairs / Bupa | No | 12 Mo | Check Online | | New Zealand | NZ | eMedical | Immigration New Zealand (INZ) | No | 36 Mo | Check Online | | Singapore | SG | National Board | MOM / ICA Singapore | No | 1 Mo | Check Online | | Malaysia | MY | National Board | FOMEMA / Immigration Dept | No | 3 Mo | Check Online | | China | CN | Standard Panel | China Customs / ITHC | Yes | 6 Mo | Check Online | | South Korea | KR | National Board | Ministry of Justice | Yes | 3 Mo | Check Online | | Germany | DE | Standard Panel | Gesundheitsamt / Designated Panel | No | 6 Mo | Check Online |


⚕️ Clinical Preparation Guide Summary

Need preparation instructions for your patients or clinic users? Use getTestPreparation():

  • Fasting Blood Sugar (FBS): 8 hours strict fasting (water permitted, diabetes medications paused).
  • Lipid Profile (Cholesterol/Triglycerides): 10 - 12 hours fasting (avoid alcohol for 48h).
  • Liver Function Tests (LFT): 8 hours fasting (abstain from alcohol for 48h).
  • Kidney Function / Creatinine: Avoid heavy red meat and creatine supplements for 24-48h prior.
  • Abdominal Ultrasound: 6 - 8 hours fasting; for pelvic scans, drink 1 liter of plain water 1 hour prior.
  • Chest X-Ray: Remove metallic objects/jewelry; inform staff if pregnancy is suspected.

For the full detailed clinical guide, visit the Online Patient Preparation Guide.


🤝 Contributing

Community contributions are warmly welcome! If an immigration department updates its health requirements or adds a new panel system:

  1. Fork this repository.
  2. Update the datasets in src/data/visa-standards.js or src/data/test-prep-standards.js.
  3. Run tests with npm test.
  4. Submit a Pull Request.

⚖️ License & Medical Disclaimer

This project is licensed under the MIT License.

Disclaimer: This open-source package is intended for software developers, travel systems, and general informational reference. Immigration medical rules change periodically according to national public health policies. Always cross-verify with official diplomatic missions, panel clinics, or the live verification engine at MedicalTest.online.