first commit
41
.gitignore
vendored
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
|
||||||
|
|
||||||
|
# dependencies
|
||||||
|
/node_modules
|
||||||
|
/.pnp
|
||||||
|
.pnp.*
|
||||||
|
.yarn/*
|
||||||
|
!.yarn/patches
|
||||||
|
!.yarn/plugins
|
||||||
|
!.yarn/releases
|
||||||
|
!.yarn/versions
|
||||||
|
|
||||||
|
# testing
|
||||||
|
/coverage
|
||||||
|
|
||||||
|
# next.js
|
||||||
|
/.next/
|
||||||
|
/out/
|
||||||
|
|
||||||
|
# production
|
||||||
|
/build
|
||||||
|
|
||||||
|
# misc
|
||||||
|
.DS_Store
|
||||||
|
*.pem
|
||||||
|
|
||||||
|
# debug
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
.pnpm-debug.log*
|
||||||
|
|
||||||
|
# env files (can opt-in for committing if needed)
|
||||||
|
.env*
|
||||||
|
|
||||||
|
# vercel
|
||||||
|
.vercel
|
||||||
|
|
||||||
|
# typescript
|
||||||
|
*.tsbuildinfo
|
||||||
|
next-env.d.ts
|
||||||
14
Dockerfile
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
FROM node:20-alpine
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
COPY package*.json ./
|
||||||
|
RUN npm install
|
||||||
|
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
RUN npm run build
|
||||||
|
|
||||||
|
EXPOSE 3000
|
||||||
|
|
||||||
|
CMD ["npm", "start"]
|
||||||
36
README.md
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app).
|
||||||
|
|
||||||
|
## Getting Started
|
||||||
|
|
||||||
|
First, run the development server:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm run dev
|
||||||
|
# or
|
||||||
|
yarn dev
|
||||||
|
# or
|
||||||
|
pnpm dev
|
||||||
|
# or
|
||||||
|
bun dev
|
||||||
|
```
|
||||||
|
|
||||||
|
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
|
||||||
|
|
||||||
|
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
|
||||||
|
|
||||||
|
This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.
|
||||||
|
|
||||||
|
## Learn More
|
||||||
|
|
||||||
|
To learn more about Next.js, take a look at the following resources:
|
||||||
|
|
||||||
|
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
|
||||||
|
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
|
||||||
|
|
||||||
|
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome!
|
||||||
|
|
||||||
|
## Deploy on Vercel
|
||||||
|
|
||||||
|
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
|
||||||
|
|
||||||
|
Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.
|
||||||
19
docker-compose.yml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
version: '3.9'
|
||||||
|
|
||||||
|
services:
|
||||||
|
nextjs:
|
||||||
|
build: .
|
||||||
|
ports:
|
||||||
|
- "3000:3000"
|
||||||
|
depends_on:
|
||||||
|
- jsonserver
|
||||||
|
environment:
|
||||||
|
NEXT_PUBLIC_API_URL: "http://jsonserver:4000"
|
||||||
|
|
||||||
|
jsonserver:
|
||||||
|
image: clue/json-server
|
||||||
|
ports:
|
||||||
|
- "4000:4000"
|
||||||
|
volumes:
|
||||||
|
- ./db.json:/data/db.json
|
||||||
|
command: json-server --watch /db.json --port 4000
|
||||||
31
eslint.config.mjs
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
import {dirname} from "path";
|
||||||
|
import {fileURLToPath} from "url";
|
||||||
|
import {FlatCompat} from "@eslint/eslintrc";
|
||||||
|
|
||||||
|
const __filename = fileURLToPath(import.meta.url);
|
||||||
|
const __dirname = dirname(__filename);
|
||||||
|
|
||||||
|
const compat = new FlatCompat({
|
||||||
|
baseDirectory: __dirname,
|
||||||
|
});
|
||||||
|
|
||||||
|
const eslintConfig = [
|
||||||
|
...compat.extends("next/core-web-vitals", "next/typescript"),
|
||||||
|
{
|
||||||
|
rules: {
|
||||||
|
"react/no-unescaped-entities": "off",
|
||||||
|
"@next/next/no-page-custom-font": "off",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ignores: [
|
||||||
|
"node_modules/**",
|
||||||
|
".next/**",
|
||||||
|
"out/**",
|
||||||
|
"build/**",
|
||||||
|
"next-env.d.ts",
|
||||||
|
],
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
export default eslintConfig;
|
||||||
7
next.config.ts
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
import type {NextConfig} from "next";
|
||||||
|
|
||||||
|
const nextConfig: NextConfig = {
|
||||||
|
/* config options here */
|
||||||
|
};
|
||||||
|
|
||||||
|
export default nextConfig;
|
||||||
6905
package-lock.json
generated
Normal file
33
package.json
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"name": "frontend",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"private": true,
|
||||||
|
"scripts": {
|
||||||
|
"dev": "concurrently \"next dev\" \"json-server --watch db.json --port 4000\"",
|
||||||
|
"build": "next build",
|
||||||
|
"start": "next start",
|
||||||
|
"lint": "eslint",
|
||||||
|
"json-server": "json-server --watch db.json --port 4000",
|
||||||
|
"app": "npm run json-server & npm run dev"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"next": "15.5.4",
|
||||||
|
"react": "19.1.0",
|
||||||
|
"react-dom": "19.1.0",
|
||||||
|
"react-select": "^5.10.2",
|
||||||
|
"swiper": "^12.0.2"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@eslint/eslintrc": "^3",
|
||||||
|
"@tailwindcss/postcss": "^4",
|
||||||
|
"@types/node": "^20",
|
||||||
|
"@types/react": "^19",
|
||||||
|
"@types/react-dom": "^19",
|
||||||
|
"concurrently": "^9.2.1",
|
||||||
|
"eslint": "^9",
|
||||||
|
"eslint-config-next": "15.5.4",
|
||||||
|
"json-server": "^1.0.0-beta.3",
|
||||||
|
"tailwindcss": "^4",
|
||||||
|
"typescript": "^5"
|
||||||
|
}
|
||||||
|
}
|
||||||
5
postcss.config.mjs
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
const config = {
|
||||||
|
plugins: ["@tailwindcss/postcss"],
|
||||||
|
};
|
||||||
|
|
||||||
|
export default config;
|
||||||
BIN
public/1daad534bbd4cd30c325dde4746d01bcc3752e98.jpg
Normal file
|
After Width: | Height: | Size: 6.0 MiB |
BIN
public/NICU.mp4
Normal file
BIN
public/android-chrome-192x192.png
Normal file
|
After Width: | Height: | Size: 9.4 KiB |
BIN
public/android-chrome-512x512.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
public/apple-touch-icon.png
Normal file
|
After Width: | Height: | Size: 8.3 KiB |
BIN
public/bank-melat.png
Normal file
|
After Width: | Height: | Size: 74 KiB |
BIN
public/bimeh-ma.png
Normal file
|
After Width: | Height: | Size: 4.9 KiB |
BIN
public/bimeh-moallem.png
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
BIN
public/bimeh-novin.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
public/bimeh-pasargad.png
Normal file
|
After Width: | Height: | Size: 6.9 KiB |
BIN
public/bimeh-saman.png
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
BIN
public/bimeh-tejarat-no.png
Normal file
|
After Width: | Height: | Size: 8.3 KiB |
BIN
public/doctor.png
Normal file
|
After Width: | Height: | Size: 441 KiB |
BIN
public/favicon-16x16.png
Normal file
|
After Width: | Height: | Size: 559 B |
BIN
public/favicon-32x32.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
public/favicon.ico
Normal file
|
After Width: | Height: | Size: 15 KiB |
1
public/file.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg fill="none" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M14.5 13.5V5.41a1 1 0 0 0-.3-.7L9.8.29A1 1 0 0 0 9.08 0H1.5v13.5A2.5 2.5 0 0 0 4 16h8a2.5 2.5 0 0 0 2.5-2.5m-1.5 0v-7H8v-5H3v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1M9.5 5V2.12L12.38 5zM5.13 5h-.62v1.25h2.12V5zm-.62 3h7.12v1.25H4.5zm.62 3h-.62v1.25h7.12V11z" clip-rule="evenodd" fill="#666" fill-rule="evenodd"/></svg>
|
||||||
|
After Width: | Height: | Size: 391 B |
BIN
public/fonts/sogand/SOGAND.ttf
Normal file
BIN
public/fonts/vazir/Vazirmatn-Black.woff2
Normal file
BIN
public/fonts/vazir/Vazirmatn-Bold.woff2
Normal file
BIN
public/fonts/vazir/Vazirmatn-ExtraBold.woff2
Normal file
BIN
public/fonts/vazir/Vazirmatn-ExtraLight.woff2
Normal file
BIN
public/fonts/vazir/Vazirmatn-Light.woff2
Normal file
BIN
public/fonts/vazir/Vazirmatn-Medium.woff2
Normal file
BIN
public/fonts/vazir/Vazirmatn-Regular.woff2
Normal file
BIN
public/fonts/vazir/Vazirmatn-SemiBold.woff2
Normal file
BIN
public/fonts/vazir/Vazirmatn-Thin.woff2
Normal file
1
public/globe.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><g clip-path="url(#a)"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.27 14.1a6.5 6.5 0 0 0 3.67-3.45q-1.24.21-2.7.34-.31 1.83-.97 3.1M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16m.48-1.52a7 7 0 0 1-.96 0H7.5a4 4 0 0 1-.84-1.32q-.38-.89-.63-2.08a40 40 0 0 0 3.92 0q-.25 1.2-.63 2.08a4 4 0 0 1-.84 1.31zm2.94-4.76q1.66-.15 2.95-.43a7 7 0 0 0 0-2.58q-1.3-.27-2.95-.43a18 18 0 0 1 0 3.44m-1.27-3.54a17 17 0 0 1 0 3.64 39 39 0 0 1-4.3 0 17 17 0 0 1 0-3.64 39 39 0 0 1 4.3 0m1.1-1.17q1.45.13 2.69.34a6.5 6.5 0 0 0-3.67-3.44q.65 1.26.98 3.1M8.48 1.5l.01.02q.41.37.84 1.31.38.89.63 2.08a40 40 0 0 0-3.92 0q.25-1.2.63-2.08a4 4 0 0 1 .85-1.32 7 7 0 0 1 .96 0m-2.75.4a6.5 6.5 0 0 0-3.67 3.44 29 29 0 0 1 2.7-.34q.31-1.83.97-3.1M4.58 6.28q-1.66.16-2.95.43a7 7 0 0 0 0 2.58q1.3.27 2.95.43a18 18 0 0 1 0-3.44m.17 4.71q-1.45-.12-2.69-.34a6.5 6.5 0 0 0 3.67 3.44q-.65-1.27-.98-3.1" fill="#666"/></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h16v16H0z"/></clipPath></defs></svg>
|
||||||
|
After Width: | Height: | Size: 1.0 KiB |
BIN
public/header-slider-1.webp
Normal file
|
After Width: | Height: | Size: 288 KiB |
BIN
public/heidarnejad.jpg
Normal file
|
After Width: | Height: | Size: 199 KiB |
BIN
public/heidarnejad.webp
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
public/main-logo-blue.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
public/main-logo.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
public/motamedi.jpg
Normal file
|
After Width: | Height: | Size: 198 KiB |
BIN
public/motamedi.webp
Normal file
|
After Width: | Height: | Size: 63 KiB |
1
public/next.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 394 80"><path fill="#000" d="M262 0h68.5v12.7h-27.2v66.6h-13.6V12.7H262V0ZM149 0v12.7H94v20.4h44.3v12.6H94v21h55v12.6H80.5V0h68.7zm34.3 0h-17.8l63.8 79.4h17.9l-32-39.7 32-39.6h-17.9l-23 28.6-23-28.6zm18.3 56.7-9-11-27.1 33.7h17.8l18.3-22.7z"/><path fill="#000" d="M81 79.3 17 0H0v79.3h13.6V17l50.2 62.3H81Zm252.6-.4c-1 0-1.8-.4-2.5-1s-1.1-1.6-1.1-2.6.3-1.8 1-2.5 1.6-1 2.6-1 1.8.3 2.5 1a3.4 3.4 0 0 1 .6 4.3 3.7 3.7 0 0 1-3 1.8zm23.2-33.5h6v23.3c0 2.1-.4 4-1.3 5.5a9.1 9.1 0 0 1-3.8 3.5c-1.6.8-3.5 1.3-5.7 1.3-2 0-3.7-.4-5.3-1s-2.8-1.8-3.7-3.2c-.9-1.3-1.4-3-1.4-5h6c.1.8.3 1.6.7 2.2s1 1.2 1.6 1.5c.7.4 1.5.5 2.4.5 1 0 1.8-.2 2.4-.6a4 4 0 0 0 1.6-1.8c.3-.8.5-1.8.5-3V45.5zm30.9 9.1a4.4 4.4 0 0 0-2-3.3 7.5 7.5 0 0 0-4.3-1.1c-1.3 0-2.4.2-3.3.5-.9.4-1.6 1-2 1.6a3.5 3.5 0 0 0-.3 4c.3.5.7.9 1.3 1.2l1.8 1 2 .5 3.2.8c1.3.3 2.5.7 3.7 1.2a13 13 0 0 1 3.2 1.8 8.1 8.1 0 0 1 3 6.5c0 2-.5 3.7-1.5 5.1a10 10 0 0 1-4.4 3.5c-1.8.8-4.1 1.2-6.8 1.2-2.6 0-4.9-.4-6.8-1.2-2-.8-3.4-2-4.5-3.5a10 10 0 0 1-1.7-5.6h6a5 5 0 0 0 3.5 4.6c1 .4 2.2.6 3.4.6 1.3 0 2.5-.2 3.5-.6 1-.4 1.8-1 2.4-1.7a4 4 0 0 0 .8-2.4c0-.9-.2-1.6-.7-2.2a11 11 0 0 0-2.1-1.4l-3.2-1-3.8-1c-2.8-.7-5-1.7-6.6-3.2a7.2 7.2 0 0 1-2.4-5.7 8 8 0 0 1 1.7-5 10 10 0 0 1 4.3-3.5c2-.8 4-1.2 6.4-1.2 2.3 0 4.4.4 6.2 1.2 1.8.8 3.2 2 4.3 3.4 1 1.4 1.5 3 1.5 5h-5.8z"/></svg>
|
||||||
|
After Width: | Height: | Size: 1.3 KiB |
BIN
public/packages/Picture1.jpg
Normal file
|
After Width: | Height: | Size: 45 KiB |
BIN
public/packages/Picture10.jpg
Normal file
|
After Width: | Height: | Size: 96 KiB |
BIN
public/packages/Picture11.jpg
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
public/packages/Picture12.jpg
Normal file
|
After Width: | Height: | Size: 93 KiB |
BIN
public/packages/Picture13.jpg
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
public/packages/Picture14.jpg
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
public/packages/Picture15.jpg
Normal file
|
After Width: | Height: | Size: 4.9 KiB |
BIN
public/packages/Picture16.jpg
Normal file
|
After Width: | Height: | Size: 8.8 KiB |
BIN
public/packages/Picture17.jpg
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
public/packages/Picture18.jpg
Normal file
|
After Width: | Height: | Size: 7.0 KiB |
BIN
public/packages/Picture19.png
Normal file
|
After Width: | Height: | Size: 83 KiB |
BIN
public/packages/Picture2.jpg
Normal file
|
After Width: | Height: | Size: 224 KiB |
BIN
public/packages/Picture20.jpg
Normal file
|
After Width: | Height: | Size: 9.0 KiB |
BIN
public/packages/Picture21.png
Normal file
|
After Width: | Height: | Size: 155 KiB |
BIN
public/packages/Picture22.jpg
Normal file
|
After Width: | Height: | Size: 54 KiB |
BIN
public/packages/Picture23.jpg
Normal file
|
After Width: | Height: | Size: 108 KiB |
BIN
public/packages/Picture24.jpg
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
public/packages/Picture25.jpg
Normal file
|
After Width: | Height: | Size: 143 KiB |
BIN
public/packages/Picture26.jpg
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
public/packages/Picture27.webp
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
public/packages/Picture3.jpg
Normal file
|
After Width: | Height: | Size: 68 KiB |
BIN
public/packages/Picture4.jpg
Normal file
|
After Width: | Height: | Size: 87 KiB |
BIN
public/packages/Picture5.jpg
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
public/packages/Picture6.jpg
Normal file
|
After Width: | Height: | Size: 97 KiB |
BIN
public/packages/Picture6.webp
Normal file
|
After Width: | Height: | Size: 73 KiB |
BIN
public/packages/Picture7.jpg
Normal file
|
After Width: | Height: | Size: 37 KiB |
BIN
public/packages/Picture8.png
Normal file
|
After Width: | Height: | Size: 206 KiB |
BIN
public/packages/Picture9.jpg
Normal file
|
After Width: | Height: | Size: 37 KiB |
BIN
public/select-doctor-reservation.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
public/shomal-logo-main.webp
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
public/shomalhospital-ipd-logo-edited.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
public/shomalhospital-ipd-logo.jpg
Normal file
|
After Width: | Height: | Size: 110 KiB |
BIN
public/shomalhospital-ipd-logo.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
public/transfer-packages/Picture1.jpg
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
public/transfer-packages/Picture2.jpg
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
public/transfer-packages/Picture3.jpg
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
public/transfer-packages/Picture4.jpg
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
public/transfer-packages/Picture5.jpg
Normal file
|
After Width: | Height: | Size: 51 KiB |
1
public/vercel.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1155 1000"><path d="m577.3 0 577.4 1000H0z" fill="#fff"/></svg>
|
||||||
|
After Width: | Height: | Size: 128 B |
1
public/window.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.5 2.5h13v10a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1zM0 1h16v11.5a2.5 2.5 0 0 1-2.5 2.5h-11A2.5 2.5 0 0 1 0 12.5zm3.75 4.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5M7 4.75a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0m1.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5" fill="#666"/></svg>
|
||||||
|
After Width: | Height: | Size: 385 B |
225
src/app/[lang]/contact-us/page.tsx
Normal file
@@ -0,0 +1,225 @@
|
|||||||
|
import {languages_types} from "@/types";
|
||||||
|
import TelephoneSvg from "@/ui/components/icons/TelephoneSvg";
|
||||||
|
import PageHeaderSlider from "@/ui/page-header-slider/PageHeaderSlider";
|
||||||
|
import Image from "next/image";
|
||||||
|
import React from "react";
|
||||||
|
import {getDictionary} from "../dictionaries";
|
||||||
|
import PatientAcceptForm from "@/ui/forms/PatientAcceptForm";
|
||||||
|
import { default_info, pages_titles } from "@/constants";
|
||||||
|
import { Metadata } from "next";
|
||||||
|
export const metadata: Metadata = {
|
||||||
|
title: pages_titles.contact_us['fa'] + ' | ' +'بیمارستان شمال',
|
||||||
|
description: "Shomal Hospital IPD contact us page",
|
||||||
|
};
|
||||||
|
export default async function ContactUs({
|
||||||
|
params,
|
||||||
|
}: {
|
||||||
|
params: Promise<{lang: languages_types}>;
|
||||||
|
}) {
|
||||||
|
const {lang} = await params;
|
||||||
|
const {contact_us_page, about_page, footer, accept_request_form} =
|
||||||
|
await getDictionary(lang);
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<PageHeaderSlider
|
||||||
|
lang={lang}
|
||||||
|
pageTitle={contact_us_page?.page_title}
|
||||||
|
imageSrc="/header-slider-1.webp"
|
||||||
|
/>
|
||||||
|
<section className="mt-16 container">
|
||||||
|
<div className="bg-[#F8F9FA] rounded-4xl px-20 py-16">
|
||||||
|
<div className="grid grid-cols-12 items-center">
|
||||||
|
<div className="col-span-8 grid grid-cols-12 gap-x-20">
|
||||||
|
<div className="col-span-3">
|
||||||
|
<div className="relative h-[200px] w-[200px] rounded-xl overflow-hidden">
|
||||||
|
<Image fill src={"/heidarnejad.jpg"} alt="doctor" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="col-span-9 h-full items-center">
|
||||||
|
<div className="flex flex-col items-start justify-center gap-y-4">
|
||||||
|
<h3 className="text-3xl font-black text-blue-primary">
|
||||||
|
{about_page?.heidarnejad?.name}
|
||||||
|
</h3>
|
||||||
|
<span className="text-secondary text-xl font-semibold">
|
||||||
|
{about_page?.heidarnejad?.expertise}
|
||||||
|
</span>
|
||||||
|
<span className="text-black text-lg">
|
||||||
|
{about_page?.heidarnejad?.position}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="col-span-4 h-full">
|
||||||
|
<div className="bg-secondary p-8 rounded-xl h-full grid grid-cols-2 items-center">
|
||||||
|
<div className="col-span-1 flex flex-col justify-start items-center gap-y-4">
|
||||||
|
<span className="text-white">
|
||||||
|
<TelephoneSvg size="60" />
|
||||||
|
</span>
|
||||||
|
<span className="text-lg text-white font-semibold">
|
||||||
|
{footer?.contact_us?.ipd_technician_number}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div className="col-span-1 flex flex-col justify-start items-center gap-y-4">
|
||||||
|
<span className="text-white">
|
||||||
|
<svg
|
||||||
|
width="60"
|
||||||
|
height="60"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="M4 20C3.45 20 2.97917 19.8042 2.5875 19.4125C2.19583 19.0208 2 18.55 2 18V6C2 5.45 2.19583 4.97917 2.5875 4.5875C2.97917 4.19583 3.45 4 4 4H20C20.55 4 21.0208 4.19583 21.4125 4.5875C21.8042 4.97917 22 5.45 22 6V18C22 18.55 21.8042 19.0208 21.4125 19.4125C21.0208 19.8042 20.55 20 20 20H4ZM12 13L4 8V18H20V8L12 13ZM12 11L20 6H4L12 11ZM4 8V6V18V8Z"
|
||||||
|
fill="currentColor"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
</span>
|
||||||
|
<span className="text-lg text-white font-semibold">
|
||||||
|
{default_info.email}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section className="mt-16 container">
|
||||||
|
<div className="bg-[#F8F9FA] rounded-4xl px-20 py-16">
|
||||||
|
<h3 className="text-[3em] font-black text-blue-primary text-center relative before:absolute before:w-[100px] before:block before:bg-secondary before:-bottom-5 before:h-[2px] before:left-[50%] before:translate-x-[-50%] ">
|
||||||
|
{contact_us_page?.info_box_title}
|
||||||
|
</h3>
|
||||||
|
<div className="mt-16">
|
||||||
|
<div className="grid grid-cols-12 gap-x-4">
|
||||||
|
<div className="col-span-6 space-y-8">
|
||||||
|
<div className="flex items-center gap-x-4">
|
||||||
|
<div className="w-[70px] h-[70px] flex items-center justify-center rounded-2xl bg-secondary">
|
||||||
|
<span>
|
||||||
|
<svg
|
||||||
|
width="40"
|
||||||
|
height="40"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="M11.9999 13.4304C13.723 13.4304 15.1199 12.0336 15.1199 10.3104C15.1199 8.5873 13.723 7.19043 11.9999 7.19043C10.2768 7.19043 8.87988 8.5873 8.87988 10.3104C8.87988 12.0336 10.2768 13.4304 11.9999 13.4304Z"
|
||||||
|
stroke="white"
|
||||||
|
strokeWidth="1.5"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="M3.6202 8.49C5.5902 -0.169998 18.4202 -0.159997 20.3802 8.5C21.5302 13.58 18.3702 17.88 15.6002 20.54C13.5902 22.48 10.4102 22.48 8.3902 20.54C5.6302 17.88 2.4702 13.57 3.6202 8.49Z"
|
||||||
|
stroke="white"
|
||||||
|
strokeWidth="1.5"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<p className="text-xl">{footer?.contact_us?.address}</p>
|
||||||
|
</div>
|
||||||
|
<div className="flex items-center gap-x-4">
|
||||||
|
<div className="w-[70px] h-[70px] flex items-center justify-center rounded-2xl bg-secondary">
|
||||||
|
<span>
|
||||||
|
<svg
|
||||||
|
width="40"
|
||||||
|
height="40"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="M4 20C3.45 20 2.97917 19.8042 2.5875 19.4125C2.19583 19.0208 2 18.55 2 18V6C2 5.45 2.19583 4.97917 2.5875 4.5875C2.97917 4.19583 3.45 4 4 4H20C20.55 4 21.0208 4.19583 21.4125 4.5875C21.8042 4.97917 22 5.45 22 6V18C22 18.55 21.8042 19.0208 21.4125 19.4125C21.0208 19.8042 20.55 20 20 20H4ZM12 13L4 8V18H20V8L12 13ZM12 11L20 6H4L12 11ZM4 8V6V18V8Z"
|
||||||
|
fill="white"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<a href={`mailto:${default_info.email}`} className="text-xl">
|
||||||
|
{default_info.email}
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div className="flex items-center gap-x-4">
|
||||||
|
<div className="w-[70px] h-[70px] flex items-center justify-center rounded-2xl bg-secondary">
|
||||||
|
<span className="text-white">
|
||||||
|
<TelephoneSvg size="40" />
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<a href="tel:+989385745269" className="text-xl">
|
||||||
|
{footer?.contact_us?.ipd_technician_number} |{" "}
|
||||||
|
{footer?.contact_us?.hospital_number}
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<span className="w-full inline-block h-[2px] bg-secondary/20"></span>
|
||||||
|
<div className="flex items-center gap-x-3">
|
||||||
|
<a
|
||||||
|
href="https://instagram.com/shomalhospital"
|
||||||
|
className="w-[70px] h-[70px] flex items-center justify-center rounded-2xl bg-secondary"
|
||||||
|
>
|
||||||
|
<span className="text-white">
|
||||||
|
<svg
|
||||||
|
width="40"
|
||||||
|
height="40"
|
||||||
|
viewBox="0 0 25 25"
|
||||||
|
fill="none"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="M8.12467 2.08337H16.8747C20.208 2.08337 22.9163 4.79171 22.9163 8.12504V16.875C22.9163 18.4774 22.2798 20.0141 21.1468 21.1471C20.0137 22.2802 18.477 22.9167 16.8747 22.9167H8.12467C4.79134 22.9167 2.08301 20.2084 2.08301 16.875V8.12504C2.08301 6.52269 2.71954 4.98597 3.85257 3.85294C4.9856 2.71991 6.52232 2.08337 8.12467 2.08337ZM7.91634 4.16671C6.92178 4.16671 5.96795 4.5618 5.26469 5.26506C4.56143 5.96832 4.16634 6.92215 4.16634 7.91671V17.0834C4.16634 19.1563 5.84342 20.8334 7.91634 20.8334H17.083C18.0776 20.8334 19.0314 20.4383 19.7347 19.735C20.4379 19.0318 20.833 18.0779 20.833 17.0834V7.91671C20.833 5.84379 19.1559 4.16671 17.083 4.16671H7.91634ZM17.9684 5.72921C18.3138 5.72921 18.6449 5.86639 18.8891 6.11058C19.1333 6.35477 19.2705 6.68596 19.2705 7.03129C19.2705 7.37662 19.1333 7.70781 18.8891 7.952C18.6449 8.19619 18.3138 8.33337 17.9684 8.33337C17.6231 8.33337 17.2919 8.19619 17.0477 7.952C16.8035 7.70781 16.6663 7.37662 16.6663 7.03129C16.6663 6.68596 16.8035 6.35477 17.0477 6.11058C17.2919 5.86639 17.6231 5.72921 17.9684 5.72921ZM12.4997 7.29171C13.881 7.29171 15.2058 7.84044 16.1825 8.81719C17.1593 9.79394 17.708 11.1187 17.708 12.5C17.708 13.8814 17.1593 15.2061 16.1825 16.1829C15.2058 17.1596 13.881 17.7084 12.4997 17.7084C11.1183 17.7084 9.79358 17.1596 8.81683 16.1829C7.84007 15.2061 7.29134 13.8814 7.29134 12.5C7.29134 11.1187 7.84007 9.79394 8.81683 8.81719C9.79358 7.84044 11.1183 7.29171 12.4997 7.29171ZM12.4997 9.37504C11.6709 9.37504 10.876 9.70428 10.29 10.2903C9.70391 10.8764 9.37467 11.6712 9.37467 12.5C9.37467 13.3288 9.70391 14.1237 10.29 14.7097C10.876 15.2958 11.6709 15.625 12.4997 15.625C13.3285 15.625 14.1233 15.2958 14.7094 14.7097C15.2954 14.1237 15.6247 13.3288 15.6247 12.5C15.6247 11.6712 15.2954 10.8764 14.7094 10.2903C14.1233 9.70428 13.3285 9.37504 12.4997 9.37504Z"
|
||||||
|
fill="white"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
href="https://linkedin.com/shomalhospital"
|
||||||
|
className="w-[70px] h-[70px] flex items-center justify-center rounded-2xl bg-secondary"
|
||||||
|
>
|
||||||
|
<span className="text-white">
|
||||||
|
<svg
|
||||||
|
width="40"
|
||||||
|
height="40"
|
||||||
|
viewBox="0 0 25 25"
|
||||||
|
fill="none"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="M7.88333 5.09347C7.88308 5.61528 7.68707 6.11561 7.33843 6.4844C6.98978 6.85319 6.51705 7.06023 6.02423 7.05997C5.53141 7.05971 5.05888 6.85217 4.71058 6.48301C4.36228 6.11385 4.16675 5.61331 4.16699 5.0915C4.16724 4.56969 4.36325 4.06936 4.71189 3.70057C5.06054 3.33178 5.53327 3.12474 6.02609 3.125C6.51891 3.12526 6.99144 3.3328 7.33974 3.70196C7.68804 4.07112 7.88357 4.57166 7.88333 5.09347ZM7.93907 8.51689H4.22274V20.8333H7.93907V8.51689ZM13.8109 8.51689H10.1131V20.8333H13.7737V14.3702C13.7737 10.7697 18.2054 10.4352 18.2054 14.3702V20.8333H21.8753V13.0323C21.8753 6.96258 15.316 7.18884 13.7737 10.1696L13.8109 8.51689Z"
|
||||||
|
fill="white"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="col-span-6">
|
||||||
|
<iframe
|
||||||
|
src="https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!1d6419.524849772638!2d52.347594!3d36.439127!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x3f8fbd6849bf386b%3A0x26cbc9441b00f373!2sShomal%20Hospital!5e0!3m2!1sen!2sus!4v1762836982418!5m2!1sen!2sus"
|
||||||
|
width="100%"
|
||||||
|
height="450"
|
||||||
|
style={{border: "0"}}
|
||||||
|
allowFullScreen={false}
|
||||||
|
loading="lazy"
|
||||||
|
referrerPolicy="no-referrer-when-downgrade"
|
||||||
|
className="rounded-xl"
|
||||||
|
></iframe>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section
|
||||||
|
id="request_accept"
|
||||||
|
className="lg:mb-24 mb-10 lg:mt-10 mt-4 container "
|
||||||
|
>
|
||||||
|
<div className="bg-[#F8F9FA] rounded-4xl lg:px-40 lg:py-16 p-2">
|
||||||
|
<h3 className="lg:text-[3em] text-3xl font-black text-blue-primary text-center relative before:absolute before:w-[100px] before:block before:bg-secondary before:-bottom-5 before:h-[2px] before:left-[50%] before:translate-x-[-50%] ">
|
||||||
|
{accept_request_form?.head_text}
|
||||||
|
</h3>
|
||||||
|
<p className="text-center lg:text-[1.2rem] leading-8 text-[#454547] mt-10">
|
||||||
|
{about_page?.form?.sub_text}
|
||||||
|
</p>
|
||||||
|
<PatientAcceptForm lang={lang} dict={about_page} />
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
11
src/app/[lang]/dictionaries.ts
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
import { languages_types } from "@/types";
|
||||||
|
import "server-only";
|
||||||
|
|
||||||
|
const dictionaries = {
|
||||||
|
en: () => import("./dictionaries/en.json").then((module) => module.default),
|
||||||
|
fa: () => import("./dictionaries/fa.json").then((module) => module.default),
|
||||||
|
ar: () => import("./dictionaries/ar.json").then((module) => module.default),
|
||||||
|
};
|
||||||
|
|
||||||
|
export const getDictionary = async (locale: languages_types) =>
|
||||||
|
dictionaries[locale]();
|
||||||
232
src/app/[lang]/dictionaries/ar.json
Normal file
@@ -0,0 +1,232 @@
|
|||||||
|
{
|
||||||
|
"products": {
|
||||||
|
"cart": "أضف إلى السلة"
|
||||||
|
},
|
||||||
|
"about_page": {
|
||||||
|
"page_title": "من نحن",
|
||||||
|
"introduction": "مقدمة عن قسم المرضى الدوليين",
|
||||||
|
"introduction_description_headText": "تأسس مستشفى شُمَال التخصصي وفوق التخصصي عام 2013 بهدف رفع مستوى الرعاية الصحية والخدمات الطبية في مدينة آمل ومناطق شمال إيران. يُعد أحد أوائل المستشفيات الخاصة الحديثة في محافظة مازندران، حيث بدأ نشاطه بـ 150 سريراً وبنى تحتية متطورة. وخلال عقد من الزمن، استطاع مستشفى شُمَال من خلال تطوير أقسامه التخصصية والباراكلينيكية، واستقطاب الكوادر الطبية المتميزة، وتجهيزه بأحدث التقنيات الطبية، أن يصبح من أبرز المراكز العلاجية في المنطقة. اليوم، وبفضل غرف العمليات المجهزة، وأقسام العناية المركزة (ICU، CCU، NICU)، وقسم الطوارئ على مدار الساعة، والعيادات التخصصية، وخدمات التصوير والمختبرات، يلبي المستشفى احتياجات المرضى المتزايدة من آمل والمدن المجاورة وحتى المرضى الدوليين. يلتزم مستشفى شُمَال بمبادئ الجودة وكرامة الإنسان والمسؤولية والابتكار، ويواصل رؤيته ليكون من المؤسسات الطبية الرائدة في شمال البلاد.",
|
||||||
|
"introduction_description_subText": "<ul class='introduction_description_subText'><li>ترخيص رسمي من وزارة الصحة</li><li>اعتماد وطني من الدرجة الأولى</li><li>أكثر من 12 عامًا من الخبرة</li><li>فريق متعدد اللغات (الإنجليزية، العربية، التركية)</li><li>مرافقة شاملة من لحظة الوصول حتى الخروج</li><li>تكاليف مناسبة مع خدمات طبية عالية الجودة</li><li>خدمات مميزة تشمل النقل من المطار، غرف VIP، مترجمين، جولات سياحية، شواطئ بحر قزوين، غابات هيركاني، ومناطق جبلية مطلة على قمة دماوند</li></ul>",
|
||||||
|
"department_introduction": "فريق قسم المرضى الدوليين",
|
||||||
|
"department_introduction_subtitle": "هدفنا هو أن تشعروا بالراحة والأمان والمساندة في جميع مراحل علاجكم — من الاستشارة الأولى حتى العودة إلى وطنكم.",
|
||||||
|
"dr_jafarian": {
|
||||||
|
"name": "الدكتور محسن جعفريان",
|
||||||
|
"expertise": "دكتوراه في إدارة الخدمات الصحية",
|
||||||
|
"position": "مدير المستشفى / مدير قسم المرضى الدوليين"
|
||||||
|
},
|
||||||
|
"dr_motamedi": {
|
||||||
|
"name": "الدكتور حسن معتمدي مطلق",
|
||||||
|
"expertise": "اختصاصي طب الطوارئ",
|
||||||
|
"position": "طبيب المرضى الدوليين"
|
||||||
|
},
|
||||||
|
"heidarnejad": {
|
||||||
|
"name": "رويا حيدرنژاد",
|
||||||
|
"expertise": "فني الطوارئ الطبية",
|
||||||
|
"position": "منسقة المرضى الدوليين"
|
||||||
|
},
|
||||||
|
"form": {
|
||||||
|
"head_text": "هل تحتاج إلى استشارة طبية؟",
|
||||||
|
"sub_text": "يرجى إرسال معلومات حول حالتك الصحية، وسنتواصل معك في أقرب وقت ممكن.",
|
||||||
|
"fields": {
|
||||||
|
"first_name": "الاسم الأول",
|
||||||
|
"last_name": "اسم العائلة",
|
||||||
|
"email": "البريد الإلكتروني",
|
||||||
|
"sex": "الجنس",
|
||||||
|
"country": "بلدك",
|
||||||
|
"services": "اختر أحد باقات الخدمات الطبية",
|
||||||
|
"phone_number": "رقم الهاتف",
|
||||||
|
"age": "العمر",
|
||||||
|
"message": "صف حالتك الصحية"
|
||||||
|
},
|
||||||
|
"buttons": {
|
||||||
|
"send_whatsapp": "إرسال عبر واتساب",
|
||||||
|
"send_email": "إرسال عبر البريد الإلكتروني"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pricing_page": {
|
||||||
|
"page_title": "قائمة الأسعار",
|
||||||
|
"table": {
|
||||||
|
"head": [
|
||||||
|
{"name": "اسم الباقة"},
|
||||||
|
{"name": "اسم الخدمة"},
|
||||||
|
{"name": "نطاق السعر (دولار أمريكي)"}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"patient_rights_charter": {
|
||||||
|
"page_title": "ميثاق حقوق المرضى",
|
||||||
|
"section_one": {
|
||||||
|
"title": "الحصول على خدمات صحية مثلى هو حق المريض",
|
||||||
|
"content": "<ul className='list-disc marker:text-secondary marker:text-2xl '>\n<li>تقديم خدمات كريمة ومحترمة تحترم قيمة الإنسان والمعتقدات الثقافية والدينية.</li>\n<li>تقديم الخدمات على أساس الصدق والإنصاف والاحترام واللطف.</li>\n<li>خالية من أي تمييز بما في ذلك العرقي أو الثقافي أو الديني أو نوع المرض أو الجنس.</li>\n<li>استنادًا إلى المعرفة الحديثة وإعطاء الأولوية لمصلحة المريض.</li>\n<li>تضمن عدالة توزيع الموارد الصحية وأولوية احتياجات علاج المرضى.</li>\n<li>تنسيق جميع جوانب الرعاية بما في ذلك الوقاية والتشخيص والعلاج وإعادة التأهيل.</li>\n<li>توفير المرافق الأساسية مع تجنب الألم والمعاناة أو القيود غير الضرورية.</li>\n<li>إيلاء اهتمام خاص لحقوق الفئات الضعيفة مثل الأطفال والنساء الحوامل وكبار السن والمرضى النفسيين والسجناء والمعاقين عقليًا وجسديًا والأفراد غير المصحوبين.</li>\n<li>تقديم الخدمات بسرعة مع احترام وقت المريض ومراعاة عوامل مثل اللغة والعمر والجنس.</li>\n<li>تقديم الرعاية الطارئة والعاجلة بغض النظر عن التكلفة؛ يجب أن تتبع الرعاية غير الطارئة اللوائح المحددة.</li>\n<li>إذا لم يكن من الممكن تقديم الخدمات المناسبة في حالات الطوارئ، يتم ترتيب النقل إلى وحدة مجهزة بعد تقديم الرعاية الضرورية والتوضيحات.</li>\n<li>في مراحل نهاية الحياة حيث يكون المرض غير قابل للشفاء والوفاة وشيكة، يجب تقديم الخدمات لضمان راحة المريض.</li>\n</ul>"
|
||||||
|
},
|
||||||
|
"section_two": {
|
||||||
|
"title": "يجب تزويد المريض بالمعلومات بشكل مناسب وكافٍ",
|
||||||
|
"content": "<ul className='list-disc marker:text-secondary marker:text-2xl'>\n<li>بنود ميثاق حقوق المرضى عند القبول.</li>\n<li>لوائح وتكاليف متوقعة للمستشفى، بما في ذلك الخدمات الطبية وغير الطبية، ولوائح التأمين، وتقديم نظم الدعم عند القبول.</li>\n<li>أسماء ومسؤوليات ورتبة أعضاء الفريق الطبي المسؤول عن تقديم الرعاية، بما في ذلك الأطباء والممرضين والطلاب، وتفاعلاتهم المهنية.</li>\n<li>طرق التشخيص والعلاج، نقاط القوة والضعف لكل طريقة، الآثار الجانبية المحتملة، تشخيص المرض، التنبؤ به، وكل المعلومات المؤثرة على اتخاذ قرار المريض.</li>\n<li>الوصول إلى الطبيب المعالج وأعضاء الفريق الطبي الرئيسيين أثناء العلاج، وتقديم التدريب الضروري لاستمرارية العلاج، وجميع الإجراءات ذات الطبيعة البحثية.</li>\n<li>يجب تقديم المعلومات في الوقت المناسب وبشكل مناسب وفقًا لظروف المريض، بما في ذلك القلق، الألم، والخصائص الفردية مثل اللغة والتعليم والقدرة على الفهم، ما لم يتسبب تأخير العلاج بسبب المعلومات في ضرر للمريض، أو إذا رفض المريض المعلومات رغم معرفته بحقوقه؛ في هذه الحالة يجب احترام إرادة المريض، ما لم يؤد عدم المعرفة إلى وضعه أو الآخرين في خطر جديد.</li>\n<li>يمكن للمريض الوصول إلى جميع المعلومات المسجلة في ملفه الطبي، والحصول على نسخة منها، وطلب تصحيح أي أخطاء.</li>\n</ul>"
|
||||||
|
},
|
||||||
|
"section_three": {
|
||||||
|
"title": "يجب احترام حق المريض في الاختيار واتخاذ القرارات بحرية",
|
||||||
|
"content": "<ul className='list-disc space-y-2 text-[1.2rem] marker:text-secondary marker:text-2xl text-[#454547]'>\n<li>اختيار الطبيب المعالج ومركز تقديم الخدمات الصحية ضمن الإطار التنظيمي، وكذلك استشارة طبيب ثانٍ كمستشار.</li>\n<li>المشاركة أو عدم المشاركة في أي بحث، مع التأكد من أن القرار لا يؤثر على استمرارية أو طريقة تلقي الخدمات الصحية.</li>\n<li>قبول أو رفض العلاجات المقترحة بعد فهم المخاطر المحتملة؛ باستثناء حالات الانتحار أو عندما يؤدي الرفض إلى تعريض شخص آخر للخطر.</li>\n<li>يجب تسجيل تصريحات المريض السابقة حول العلاجات المستقبلية عندما يكون قادرًا على اتخاذ القرار، واستخدامها كدليل للإجراءات الطبية في حالة فقدان القدرة، مع الالتزام بالأحكام القانونية.</li>\n<li>يجب أن يكون اختيار المريض واتخاذ القرار حرًا ومستنيرًا ومستندًا إلى معلومات كافية وشاملة (كما هو موضح أعلاه).</li>\n<li>بعد تقديم المعلومات، يجب منح المريض الوقت الكافي لاتخاذ قرارات مستنيرة.</li>\n</ul>"
|
||||||
|
},
|
||||||
|
"section_four": {
|
||||||
|
"title": "الوصول إلى نظام فعال لمعالجة الشكاوى هو حق المريض",
|
||||||
|
"content": "<ul className='list-disc space-y-2 text-[1.2rem] marker:text-secondary marker:text-2xl text-[#454547]'>\n<li>يحق لكل مريض تقديم شكوى إلى السلطات المختصة في حال الاشتباه بانتهاك حقوقه المنصوص عليها في هذا الميثاق، دون التأثير على جودة الخدمات الصحية المقدمة.</li>\n<li>يحق للمرضى معرفة كيفية معالجة شكواهم ونتائجها.</li>\n<li>يجب تعويض الأضرار الناجمة عن أخطاء مقدمي الخدمات الصحية بسرعة بعد المراجعة والتحقق، وفقًا للأنظمة.</li>\n</ul>"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"accept_request_form": {
|
||||||
|
"head_text": "نموذج القبول الأولي للمريض"
|
||||||
|
},
|
||||||
|
"contact_us_page": {
|
||||||
|
"page_title": "اتصل بنا",
|
||||||
|
"info_box_title": "ابق على تواصل معنا"
|
||||||
|
},
|
||||||
|
"footer": {
|
||||||
|
"under_logo_text": "يتكوّن فريق المرضى الدوليين في مستشفى شُمَال من مجموعة من المتخصصين في الرعاية الصحية والمترجمين الطبيين ومستشاري السفر العلاجي، الذين يقدمون الدعم للمرضى الدوليين على مدار الساعة وبعدة لغات. هدفنا أن تشعروا بالراحة والأمان والمساندة في جميع مراحل علاجكم — من الاستشارة الأولى حتى عودتكم سالمين إلى وطنكم.",
|
||||||
|
"our_address": "عنواننا",
|
||||||
|
"ipd_technician_number": "رقم فني قسم المرضى الدوليين",
|
||||||
|
"hospital_number": "رقم المستشفى",
|
||||||
|
"contact_us_text": "تواصل معنا",
|
||||||
|
"contact_us": {
|
||||||
|
"address": "إيران، مازندران، آمل، شارع المدرس، آفـتاب ٤٧، مستشفى شُمَال",
|
||||||
|
"ipd_technician_number": "09385745269",
|
||||||
|
"hospital_number": "011-4492"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"medical_packages": [
|
||||||
|
{
|
||||||
|
"package_name": "باقة الجهاز الهضمي",
|
||||||
|
"services": [
|
||||||
|
{"service_name": "تنظير علوي"},
|
||||||
|
{"service_name": "تنظير القولون الكامل"},
|
||||||
|
{"service_name": "تنظير و تنظير القولون في وقت واحد"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package_name": "باقة استئصال الرحم",
|
||||||
|
"services": [
|
||||||
|
{"service_name": "جراحة سرطان الرحم أو عنق الرحم"},
|
||||||
|
{"service_name": "جراحة سرطان المبيض"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package_name": "باقة القلب",
|
||||||
|
"services": [
|
||||||
|
{"service_name": "تصوير الأوعية القلبية"},
|
||||||
|
{"service_name": "توسيع الأوعية + تركيب دعامة"},
|
||||||
|
{"service_name": "اختبار تخطيط كهربية القلب"},
|
||||||
|
{"service_name": "استئصال القلب"},
|
||||||
|
{"service_name": "زرع أجهزة القلب (CRT)"},
|
||||||
|
{"service_name": "زرع أجهزة القلب (ICD)"},
|
||||||
|
{"service_name": "زرع أجهزة القلب (منظم ضربات القلب)"},
|
||||||
|
{"service_name": "جراحة تحويل مسار الشريان التاجي (CABG)"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package_name": "باقة التجميل",
|
||||||
|
"services": [
|
||||||
|
{"service_name": "شفط الدهون / ليبوماتيك (البطن، الجوانب، الفخذ)"},
|
||||||
|
{"service_name": "شد البطن (جراحة تجميلية للبطن)"},
|
||||||
|
{"service_name": "شد الجفون العليا والسفلى"},
|
||||||
|
{"service_name": "رفع الوجه والرقبة"},
|
||||||
|
{"service_name": "تكبير / رفع الثدي (مع غرسة)"},
|
||||||
|
{"service_name": "تكبير / رفع الثدي (بدون غرسة)"},
|
||||||
|
{"service_name": "زرع الشعر"},
|
||||||
|
{"service_name": "قص المعدة"},
|
||||||
|
{"service_name": "حقن الدهون للوجه أو الجسم"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package_name": "باقة العظام",
|
||||||
|
"services": [
|
||||||
|
{"service_name": "استبدال مفصل الورك"},
|
||||||
|
{"service_name": "استبدال مفصل الركبة"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package_name": "باقة جراحة المخ",
|
||||||
|
"services": [
|
||||||
|
{"service_name": "جراحة العمود الفقري (الدمج)"},
|
||||||
|
{"service_name": "جراحة العمود الفقري (استئصال الصفيحة)"},
|
||||||
|
{"service_name": "جراحة العمود الفقري (استئصال القرص)"},
|
||||||
|
{"service_name": "استئصال الجمجمة"},
|
||||||
|
{"service_name": "جراحة قاعدة الجمجمة"},
|
||||||
|
{"service_name": "جراحة أورام المخ"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package_name": "باقة الأنف والأذن والحنجرة",
|
||||||
|
"services": [
|
||||||
|
{"service_name": "تصحيح انحراف الحاجز الأنفي"},
|
||||||
|
{"service_name": "استئصال اللوزتين و/أو اللحمية"},
|
||||||
|
{"service_name": "استئصال السلائل الأنفية أو الجيوب"},
|
||||||
|
{"service_name": "جراحة تجميل الأنف"}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"our_medical_packages": "<ul><li>💼 التنسيق الكامل قبل الوصول: التنسيق مع مستشفى شمال لمراجعة السجلات الطبية، واستشارة الأطباء المتخصصين، وإرسال تقدير التكلفة</li><li>🛬 الاستقبال في المطار: نقل خاص من المطار إلى المستشفى أو الفندق</li><li>🌐 مترجم فوري: خدمات الترجمة باللغات الإنجليزية، العربية، الكردية، التركية، وغيرها</li><li>🏨 حجز الفندق والإقامة: التعاون مع فنادق بمستوى عالمي بالقرب من المستشفى</li><li>🧾 الإرشاد والدعم الإداري: إصدار دعوة للحصول على تأشيرة علاجية، الإرشاد في الجمارك والإقامة</li><li>👨⚕️ الوصول السريع إلى الأطباء المتخصصين: التنسيق الكامل مع مستشفى شمال؛ تحديد مواعيد فورية وإحالة مباشرة لأفضل الأطباء في كل تخصص</li><li>📋 المتابعة بعد الخروج: إرسال السجلات الطبية، التواصل مع الطبيب المعالج، والرد على استفسارات المريض بعد الخروج</li></ul>",
|
||||||
|
"our_doctors": "أطباؤنا",
|
||||||
|
"license_number": "رقم الترخيص الطبي",
|
||||||
|
"search_by_name": "البحث حسب اسم الطبيب",
|
||||||
|
"select_this": "اختر هذا",
|
||||||
|
"search": "البحث",
|
||||||
|
|
||||||
|
"medical_packages_headTitle": "خدماتنا الطبية",
|
||||||
|
"transfer_service_page": {
|
||||||
|
"page_title": "خدمات السياحة",
|
||||||
|
"introduction": {
|
||||||
|
"title": "تعريف فريق السياحة العلاجية",
|
||||||
|
"head_text": "<p>تم تشكيل فريق السياحة العلاجية في مستشفى شمال بالتعاون مع شركة راز نوای آسمان ألبرز بهدف توفير تجربة آمنة ومريحة ومهنية للمرضى الدوليين. يتولى هذا الفريق مهمة تقديم إمكانيات المستشفى وجذب المرضى من الدول الأخرى، ويعتبر حلقة وصل بين المستشفى والأسواق الدولية.</p>",
|
||||||
|
"mojgan_yaghoubi": {
|
||||||
|
"fullname": "مژگان يعقوبي",
|
||||||
|
"position": "قائدة الفريق ومنسقة الإقامة",
|
||||||
|
"phone_number": "989353093925",
|
||||||
|
"email": "yaqoubi.mozhgan@gmail.com"
|
||||||
|
},
|
||||||
|
"hassan_mozaffarzadeh": {
|
||||||
|
"fullname": "حسن مظفرزاده",
|
||||||
|
"position": "النقل والمرشد السياحي",
|
||||||
|
"phone_number": "989353093925",
|
||||||
|
"email": ""
|
||||||
|
},
|
||||||
|
"packages_list": "قائمة الباقات",
|
||||||
|
"our_serives_ipd": "خدماتنا للمرضى الدوليين",
|
||||||
|
"packages": [
|
||||||
|
{
|
||||||
|
"name": "الباقة الفاخرة",
|
||||||
|
"dsc": "<ul><li>استخراج التأشيرة</li><li>النقل من وإلى المطار وداخل المدينة</li><li>مترجم مرافق</li><li>إقامة كاملة في جناح رويال فندق أكسین (غرفة مزدوجة أو توأم)</li><li>جولة ليوم كامل إلى ينابيع لاريجان المعدنية أو غابات بِليرون (حسب اختيار المسافر)</li></ul>",
|
||||||
|
"price": "السعر المقترح: حوالي 1900 دولار"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "الباقة العادية",
|
||||||
|
"dsc": "<ul><li>استخراج التأشيرة</li><li>النقل من وإلى المطار وداخل المدينة</li><li>مترجم مرافق</li><li>الإقامة في غرف قياسية في فندق أكسین (مزدوجة أو توأم) مع الإفطار</li><li>جولة نصف يوم في مدينة آمل</li></ul>",
|
||||||
|
"price": "السعر المقترح: حوالي 1500 دولار"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "الباقة الاقتصادية",
|
||||||
|
"dsc": "<ul><li>استخراج التأشيرة</li><li>النقل من وإلى المطار وداخل المدينة</li><li>مترجم مرافق</li><li>الإقامة في فندق الأولمبيك مع الإفطار</li></ul>",
|
||||||
|
"price": "السعر المقترح: حوالي 900 دولار"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"image_headTitle": "جولة نصف يوم في مدينة آمل",
|
||||||
|
"amol_museum": "متحف آمل",
|
||||||
|
"grand_mosque": "الجامع الكبير في آمل",
|
||||||
|
"fire_temple": "معبد النار في آمل"
|
||||||
|
},
|
||||||
|
"jobs": "<ul><li>الرد على طلبات واستفسارات المرضى والوكلاء</li><li>استخراج التأشيرة العلاجية وتأمين السفر</li><li>حجز الإقامة المناسبة حسب ميزانية ورغبات المريض (فندق، نُزل، شقة)</li><li>النقل من المطار إلى المستشفى أو محل الإقامة</li><li>تنظيم الجولات الثقافية والترفيهية في آمل والمناطق المجاورة (في حال كانت حالة المريض تسمح)</li><li>مرافق مترجم سياحي عند الحاجة</li><li>تنسيق إقامة المرافقين وخدمات النقل</li></ul>",
|
||||||
|
"services": "<ul><li>تنسيق كامل قبل الوصول</li><li>التنسيق مع مستشفى شمال لمراجعة الملف الطبي والاستشارات الطبية وإرسال عرض التكلفة</li><li>الاستقبال في المطار</li><li>نقل خاص إلى المستشفى أو الفندق</li><li>مرافقة مرشد سياحي ومتحدث بلغات متعددة</li><li>حجز الفنادق بالتعاون مع فنادق بمعايير دولية بالقرب من المستشفى</li><li>الدعم في الإجراءات الإدارية (خطاب دعوة للتأشيرة العلاجية، المساعدة في الجمارك والإقامة)</li><li>تنسيق مباشر مع مستشفى شمال: تحديد المواعيد العاجلة وتحويل المرضى لأفضل الأطباء</li><li>المتابعة بعد الخروج (إرسال التقارير الطبية، التواصل مع الطبيب والإجابة على استفسارات المريض)</li></ul><p><strong>تكلفة الخدمات الأساسية:</strong> تشمل النقل، المرشد، إقامة في غرفة مزدوجة، التأشيرة – 1500 دولار</p><p><strong>الجولات الاختيارية:</strong> في حال تسمح حالة المريض – ينابيع لاريجان المعدنية مع إقامة كاملة</p>"
|
||||||
|
},
|
||||||
|
"package_price": "سعر الباقة",
|
||||||
|
"reserve_ipd": "حجز موعد واستشارة مجانية مع الطبيب وخبير خدمات المرضى الدوليين",
|
||||||
|
"phone_number": "رقم الهاتف المحمول",
|
||||||
|
"email": "البريد الإلكتروني",
|
||||||
|
"oxin_hotel_location": "موقع فندق اوكسين",
|
||||||
|
"olympic_hotel_location": "موقع فندق الأولمبيك",
|
||||||
|
"upload_documents": {
|
||||||
|
"head_text": "نموذج رفع المستندات الطبية",
|
||||||
|
"input_code_placeholder": "أدخل الرمز المستلم من الاختصاصي",
|
||||||
|
"input_files_label": "تحميل عدة ملفات من المستندات الطبية",
|
||||||
|
"input_dsc": "إذا كانت لديك أي ملاحظات حول المستندات، اكتبها هنا",
|
||||||
|
"sendbutton": "إرسال المستندات"
|
||||||
|
},
|
||||||
|
"related_links": "روابط ذات صلة"
|
||||||
|
}
|
||||||
232
src/app/[lang]/dictionaries/en.json
Normal file
@@ -0,0 +1,232 @@
|
|||||||
|
{
|
||||||
|
"products": {
|
||||||
|
"cart": "Add to Cart"
|
||||||
|
},
|
||||||
|
"about_page": {
|
||||||
|
"page_title": "About Us",
|
||||||
|
"introduction": "Introduction to the International Patients Department",
|
||||||
|
"introduction_description_headText": "The International Patients Unit at Shomal Hospital was established to provide healthcare services to international patients and Iranian expatriates according to international standards. With an experienced, multilingual, and professional team, we support you throughout every stage of your treatment, from initial consultation to returning to your home country.\n• Official license from the Ministry of Health\n• National accreditation, grade one\n• Over 12 years of experience\n• Multilingual team (English, Arabic, Turkish)\n• Full accompaniment from arrival to discharge\n• Cost-effective services with high quality\n• Special services including airport transfer, VIP rooms, interpreter and city tours, Caspian Sea beaches, Hyrcanian forests, and mountain resorts with views of Mount Damavand",
|
||||||
|
"introduction_description_subText": "<ul class='introduction_description_subText'><li>Official license from the Ministry of Health</li><li>National first-class accreditation</li><li>Over 12 years of experience</li><li>Multilingual team (English, Arabic, Turkish)</li><li>Comprehensive assistance from admission to discharge</li><li>Affordable pricing with premium healthcare quality</li><li>Exclusive services such as airport transfer, VIP rooms, translation, city tours, Caspian Sea beaches, Hyrcanian forests, and mountain resorts overlooking Mount Damavand</li></ul>",
|
||||||
|
"department_introduction": "International Patients Department Team",
|
||||||
|
"department_introduction_subtitle": "Our goal is to ensure that you feel comfortable, safe, and supported throughout every step of your treatment — from the initial consultation to your return home.",
|
||||||
|
"dr_jafarian": {
|
||||||
|
"name": "Dr. Mohsen Jafarian",
|
||||||
|
"expertise": "Ph.D. in Healthcare Management",
|
||||||
|
"position": "Hospital Director / Head of International Patients Department"
|
||||||
|
},
|
||||||
|
"dr_motamedi": {
|
||||||
|
"name": "Dr. Hassan Motamedi Motlagh",
|
||||||
|
"expertise": "Specialist in Emergency Medicine",
|
||||||
|
"position": "International Patients Physician"
|
||||||
|
},
|
||||||
|
"heidarnejad": {
|
||||||
|
"name": "Roya Heidarnejad",
|
||||||
|
"expertise": "Emergency Medical Technician",
|
||||||
|
"position": "International Patients Coordinator"
|
||||||
|
},
|
||||||
|
"form": {
|
||||||
|
"head_text": "Need Medical Consultation?",
|
||||||
|
"sub_text": "Please send us details about your medical condition. We will contact you as soon as possible.",
|
||||||
|
"fields": {
|
||||||
|
"first_name": "First Name",
|
||||||
|
"last_name": "Last Name",
|
||||||
|
"email": "Email",
|
||||||
|
"sex": "Gender",
|
||||||
|
"country": "Your Country",
|
||||||
|
"services": "Select one of the medical service packages",
|
||||||
|
"phone_number": "Phone Number",
|
||||||
|
"age": "Age",
|
||||||
|
"message": "Describe your condition"
|
||||||
|
},
|
||||||
|
"buttons": {
|
||||||
|
"send_whatsapp": "Send Request via WhatsApp",
|
||||||
|
"send_email": "Send Request via Email"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pricing_page": {
|
||||||
|
"page_title": "Price List",
|
||||||
|
"table": {
|
||||||
|
"head": [
|
||||||
|
{"name": "Package Name"},
|
||||||
|
{"name": "Service Name"},
|
||||||
|
{"name": "Price Range (USD)"}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"accept_request_form": {
|
||||||
|
"head_text": "Initial Patient Admission Form"
|
||||||
|
},
|
||||||
|
"contact_us_page": {
|
||||||
|
"page_title": "Contact Us",
|
||||||
|
"info_box_title": "Get in Touch with Us"
|
||||||
|
},
|
||||||
|
"patient_rights_charter": {
|
||||||
|
"page_title": "Patient Rights Charter",
|
||||||
|
"section_one": {
|
||||||
|
"title": "Receiving Optimal Health Services is a Patient Right",
|
||||||
|
"content": "<ul className='list-disc marker:text-secondary marker:text-2xl '>\n<li>Provide dignified and respectful services that honor human value and cultural and religious beliefs.</li>\n<li>Offer services based on honesty, fairness, courtesy, and compassion.</li>\n<li>Be free from any discrimination, including ethnic, cultural, religious, disease type, or gender.</li>\n<li>Be evidence-based and prioritize the best interest of the patient.</li>\n<li>Ensure fair allocation of health resources and prioritize patient treatment needs.</li>\n<li>Coordinate all aspects of care, including prevention, diagnosis, treatment, and rehabilitation.</li>\n<li>Provide essential amenities while avoiding unnecessary pain, suffering, or restrictions.</li>\n<li>Pay special attention to the rights of vulnerable groups, including children, pregnant women, elderly, psychiatric patients, prisoners, mentally and physically disabled, and unaccompanied individuals.</li>\n<li>Provide services promptly while respecting patient time and considering factors such as language, age, and gender.</li>\n<li>Provide urgent and emergency care regardless of cost; non-urgent care should follow established regulations.</li>\n<li>If appropriate services cannot be provided in emergencies, arrange transfer to a equipped unit after essential care and explanations.</li>\n<li>In end-of-life stages where the disease is irreversible and death is imminent, provide services to ensure patient comfort.</li>\n</ul>"
|
||||||
|
},
|
||||||
|
"section_two": {
|
||||||
|
"title": "Information Must Be Provided to the Patient Adequately and Appropriately",
|
||||||
|
"content": "<ul className='list-disc marker:text-secondary marker:text-2xl'>\n<li>Patient rights charter provisions at the time of admission.</li>\n<li>Rules and foreseeable costs of the hospital, including medical and non-medical services, insurance regulations, and introduction of support systems at the time of admission.</li>\n<li>Names, responsibilities, and professional rank of medical team members responsible for patient care, including doctors, nurses, and students, and their professional interactions.</li>\n<li>Diagnostic and treatment methods, strengths and weaknesses of each method, potential side effects, disease diagnosis, prognosis, and all information affecting patient decision-making.</li>\n<li>Access to the attending physician and main medical team members during treatment, provision of necessary training for continuity of care, and all actions with research nature.</li>\n<li>Information must be provided timely and appropriately according to patient conditions, including anxiety, pain, individual characteristics such as language, education, and comprehension ability, unless delaying treatment due to this information would harm the patient, or the patient refuses information despite being aware of the right; in which case, the patient’s will should be respected, unless lack of information exposes the patient or others to new risks.</li>\n<li>The patient can access all information recorded in their clinical file, obtain a copy, and request correction of any errors.</li>\n</ul>"
|
||||||
|
},
|
||||||
|
"section_three": {
|
||||||
|
"title": "The Patient's Right to Choose and Make Informed Decisions Must Be Respected",
|
||||||
|
"content": "<ul className='list-disc space-y-2 text-[1.2rem] marker:text-secondary marker:text-2xl text-[#454547]'>\n<li>Choosing the attending physician and the health service center within regulatory framework, as well as consulting a second physician as an advisor.</li>\n<li>Participation or non-participation in any research, ensuring that the decision does not affect continuity or manner of receiving health services.</li>\n<li>Accepting or rejecting proposed treatments after understanding potential risks; except in cases of suicide or when refusal endangers another person.</li>\n<li>Patient's prior statements regarding future treatments, when capable of decision-making, should be recorded and guide medical actions in case of incapacity, following legal provisions.</li>\n<li>Patient's choice and decision-making must be free, informed, and based on sufficient and comprehensive information (as described above).</li>\n<li>After providing information, allow sufficient time for the patient to make informed decisions.</li>\n</ul>"
|
||||||
|
},
|
||||||
|
"section_four": {
|
||||||
|
"title": "Access to an Efficient Complaint Handling System is a Patient Right",
|
||||||
|
"content": "<ul className='list-disc space-y-2 text-[1.2rem] marker:text-secondary marker:text-2xl text-[#454547]'>\n<li>Every patient has the right to file a complaint with the relevant authorities in case of alleged violation of their rights under this charter, without affecting the quality of health services received.</li>\n<li>Patients have the right to be informed about the process and outcome of their complaint.</li>\n<li>Damages arising from errors by health service providers must be compensated promptly after review and verification, according to regulations.</li>\n</ul>"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"footer": {
|
||||||
|
"under_logo_text": "The International Patients Team at Shomal Hospital consists of professional healthcare specialists, medical interpreters, and medical travel consultants who provide multilingual, 24-hour support to international patients. Our mission is to ensure that you feel comfortable, safe, and supported throughout every stage of your treatment — from the initial consultation to your safe return home.",
|
||||||
|
"our_address": "Our Address",
|
||||||
|
"ipd_technician_number": "IPD Technician Contact",
|
||||||
|
"hospital_number": "Hospital Contact Number",
|
||||||
|
"contact_us_text": "Contact Us",
|
||||||
|
"contact_us": {
|
||||||
|
"address": "Iran, Mazandaran, Amol, Modarres Blvd, Aftab 47, Shomal Hospital",
|
||||||
|
"ipd_technician_number": "09385745269",
|
||||||
|
"hospital_number": "011-4492"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"medical_packages": [
|
||||||
|
{
|
||||||
|
"package_name": "Gastroenterology Package",
|
||||||
|
"services": [
|
||||||
|
{"service_name": "Upper Endoscopy"},
|
||||||
|
{"service_name": "Full Colonoscopy"},
|
||||||
|
{"service_name": "Combined Endoscopy and Colonoscopy"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package_name": "Hysterectomy Package",
|
||||||
|
"services": [
|
||||||
|
{"service_name": "Uterine or Cervical Cancer Surgery"},
|
||||||
|
{"service_name": "Ovarian Cancer Surgery"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package_name": "Cardiology Package",
|
||||||
|
"services": [
|
||||||
|
{"service_name": "Cardiac Angiography"},
|
||||||
|
{"service_name": "Angioplasty + Stenting"},
|
||||||
|
{"service_name": "Cardiac Electrophysiology Test"},
|
||||||
|
{"service_name": "Cardiac Ablation"},
|
||||||
|
{"service_name": "Cardiac Device Implantation (CRT)"},
|
||||||
|
{"service_name": "Cardiac Device Implantation (ICD)"},
|
||||||
|
{"service_name": "Cardiac Device Implantation (Pacemaker)"},
|
||||||
|
{"service_name": "Coronary Artery Bypass Grafting (CABG)"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package_name": "Cosmetic Package",
|
||||||
|
"services": [
|
||||||
|
{"service_name": "Liposuction / Lipomatic (Abdomen, Flanks, Thighs)"},
|
||||||
|
{"service_name": "Abdominoplasty (Tummy Tuck)"},
|
||||||
|
{"service_name": "Blepharoplasty (Upper and Lower Eyelids)"},
|
||||||
|
{"service_name": "Face and Neck Lift"},
|
||||||
|
{"service_name": "Breast Augmentation / Lift (With Implant)"},
|
||||||
|
{"service_name": "Breast Augmentation / Lift (Without Implant)"},
|
||||||
|
{"service_name": "Hair Transplant"},
|
||||||
|
{"service_name": "Sleeve"},
|
||||||
|
{"service_name": "Fat Injection to Face or Body"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package_name": "Orthopedic Package",
|
||||||
|
"services": [
|
||||||
|
{"service_name": "Hip Joint Replacement"},
|
||||||
|
{"service_name": "Knee Joint Replacement"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package_name": "Neurosurgery Package",
|
||||||
|
"services": [
|
||||||
|
{"service_name": "Spinal Surgery (Fusion)"},
|
||||||
|
{"service_name": "Spinal Surgery (Laminectomy)"},
|
||||||
|
{"service_name": "Spinal Surgery (Discectomy)"},
|
||||||
|
{"service_name": "Craniotomy"},
|
||||||
|
{"service_name": "Skull Base Surgery"},
|
||||||
|
{"service_name": "Brain Tumor Surgery"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package_name": "ENT Package",
|
||||||
|
"services": [
|
||||||
|
{"service_name": "Septoplasty (Correct Nasal Septum Deviation)"},
|
||||||
|
{"service_name": "Adenoidectomy and/or Tonsillectomy"},
|
||||||
|
{"service_name": "Nasal or Sinus Polyp (Polypectomy)"},
|
||||||
|
{"service_name": "Rhinoplasty (Nose Surgery)"}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"our_medical_packages": "<ul><li>💼 Full pre-arrival coordination: Coordination with Shomal Hospital to review medical records, consultation with specialist doctors, and sending a cost estimate</li><li>🛬 Airport reception and welcome: Private transfer from the airport to the hospital or hotel</li><li>🌐 Simultaneous interpreter: Translation services in English, Arabic, Kurdish, Turkish, etc.</li><li>🏨 Hotel and accommodation booking: Cooperation with hotels meeting international standards near the hospital</li><li>🧾 Administrative guidance and support: Issuance of invitation letter for medical visa, guidance on customs and residency</li><li>👨⚕️ Fast access to specialist doctors: Fully coordinated with Shomal Hospital; immediate appointments and direct referral to the best doctors in each specialty</li><li>📋 Post-discharge follow-up: Sending medical records, communication with the treating doctor, and answering patient’s follow-up questions</li></ul>",
|
||||||
|
"our_doctors": "Our Doctors",
|
||||||
|
"license_number": "Medical License Number",
|
||||||
|
"search_by_name": "Search by doctor's name",
|
||||||
|
"select_this": "Select ...",
|
||||||
|
"search": "Search",
|
||||||
|
|
||||||
|
"medical_packages_headTitle": "Our Medical Services",
|
||||||
|
"transfer_service_page": {
|
||||||
|
"page_title": "Tourism Services",
|
||||||
|
"introduction": {
|
||||||
|
"title": "Tourism Team Introduction",
|
||||||
|
"head_text": "<p>The medical tourism team of Shomal Hospital, in cooperation with Raz Navaye Aseman Alborz Company, has been established to provide a safe, comfortable, and professional experience for international patients. This team is responsible for presenting the hospital’s capabilities and attracting patients from other countries. They serve as a communication bridge between the hospital and international markets.</p>",
|
||||||
|
"mojgan_yaghoubi": {
|
||||||
|
"fullname": "Mozhgan Yaghoubi",
|
||||||
|
"position": "Team Leader & Accommodation Coordinator",
|
||||||
|
"phone_number": "989353093925",
|
||||||
|
"email": "yaqoubi.mozhgan@gmail.com"
|
||||||
|
},
|
||||||
|
"hassan_mozaffarzadeh": {
|
||||||
|
"fullname": "Hassan Mozaffarzadeh",
|
||||||
|
"position": "Transfer & Tour Guide",
|
||||||
|
"phone_number": "989353093925",
|
||||||
|
"email": ""
|
||||||
|
},
|
||||||
|
"packages_list": "Package List",
|
||||||
|
"our_serives_ipd": "Our Services for International Patients",
|
||||||
|
"packages": [
|
||||||
|
{
|
||||||
|
"name": "Luxury Package",
|
||||||
|
"dsc": "<ul><li>Visa issuance</li><li>Airport and city transfer</li><li>Accompanying translator</li><li>Full-board stay in Oxin Royal Suite (double or twin room)</li><li>One-day excursion to Larijan hot springs or Beliron forest (based on traveler’s choice)</li></ul>",
|
||||||
|
"price": "Estimated price: around 1900 USD"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Standard Package",
|
||||||
|
"dsc": "<ul><li>Visa issuance</li><li>Airport and city transfer</li><li>Accompanying translator</li><li>Stay in Oxin Hotel standard rooms (double or twin) with breakfast</li><li>Half-day city tour of Amol</li></ul>",
|
||||||
|
"price": "Estimated price: around 1500 USD"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Economy Package",
|
||||||
|
"dsc": "<ul><li>Visa issuance</li><li>Airport and city transfer</li><li>Accompanying translator</li><li>Stay at Olympic Hotel with breakfast</li></ul>",
|
||||||
|
"price": "Estimated price: around 900 USD"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"image_headTitle": "Half-day Amol City Tour",
|
||||||
|
"amol_museum": "Amol Museum",
|
||||||
|
"grand_mosque": "Amol Grand Mosque",
|
||||||
|
"fire_temple": "Amol Fire Temple"
|
||||||
|
},
|
||||||
|
"jobs": "<ul><li>Responding to initial inquiries from patients and agents</li><li>Medical visa issuance and travel insurance</li><li>Booking accommodations based on patient budget and preferences (hotel, guesthouse, apartment)</li><li>Airport transfer to hospital or residence</li><li>Planning recreational and cultural tours in Amol and nearby areas (depending on patient health)</li><li>Accompanying tourist interpreter if needed</li><li>Arranging companion accommodation and transportation services</li></ul>",
|
||||||
|
"services": "<ul><li>Full coordination before arrival</li><li>Coordination with Shomal Hospital for medical records review, specialist consultation, and cost estimation</li><li>Airport pick-up and reception</li><li>Private transfer to hospital or hotel</li><li>Accompanying multilingual tour guide and interpreter</li><li>Hotel reservation in partnership with international-standard hotels near the hospital</li><li>Administrative support (medical visa invitation letter, customs and residency assistance)</li><li>Full coordination with Shomal Hospital: immediate appointments and referrals to the best specialists</li><li>Post-discharge follow-up (medical file delivery, communication with physician, and answering patient questions)</li></ul><p><strong>Basic Service Fee:</strong> Includes transfer, guide, shared double room accommodation, visa issuance – 1500 USD</p><p><strong>Optional Tours:</strong> If patient is in good condition – Larijan hot springs full-board stay</p>"
|
||||||
|
},
|
||||||
|
"package_price": "Package Price",
|
||||||
|
"reserve_ipd": "Book an appointment & free consultation with IPD expert and doctor",
|
||||||
|
"phone_number": "Phone Number",
|
||||||
|
"email": "Email",
|
||||||
|
"oxin_hotel_location": "Oxin Hotel Location",
|
||||||
|
"olympic_hotel_location": "Olympic Hotel Location",
|
||||||
|
"upload_documents": {
|
||||||
|
"head_text": "Medical Documents Upload Form",
|
||||||
|
"input_code_placeholder": "Enter the code received from the specialist",
|
||||||
|
"input_files_label": "Upload multiple medical document files",
|
||||||
|
"input_dsc": "If you have any notes about the documents, write them here",
|
||||||
|
"sendbutton": "Send Documents"
|
||||||
|
},
|
||||||
|
"related_links":"Related Links"
|
||||||
|
}
|
||||||
240
src/app/[lang]/dictionaries/fa.json
Normal file
@@ -0,0 +1,240 @@
|
|||||||
|
{
|
||||||
|
"products": {
|
||||||
|
"cart": "افزودن به سبد خرید"
|
||||||
|
},
|
||||||
|
"accept_request_form": {
|
||||||
|
"head_text": "فرم اولیه پذیرش بیمار"
|
||||||
|
},
|
||||||
|
"about_page": {
|
||||||
|
"page_title": "درباره ما",
|
||||||
|
"introduction": "معرفی دپارتمان بیماران بین الملل",
|
||||||
|
"introduction_description_headText": "واحد بیماران بینالملل بیمارستان شمال با هدف ارائه خدمات درمانی با استانداردهای بینالمللی به بیماران خارجی و ایرانیان مقیم خارج از کشور راهاندازی شده است. ما با تیمی متخصص، چندزبانه و با تجربه، همراه شما در تمامی مراحل درمان، از مشاوره اولیه تا بازگشت به کشور خود، خواهیم بود.\n• دارای مجوز رسمی از وزارت بهداشت کشور\n• درجه یک اعتباربخشی ملی\n• بیش از 12 سال تجربه\n• تیم چندزبانه (انگلیسی، عربی، ترکی)\n• همراهی کامل از زمان ورود تا ترخیص\n• هزینههای مقرونبهصرفه با ارائه کیفیت عالی\n• خدمات ویژه مانند ترانسفر فرودگاهی، اتاقهای VIP، مترجم و گشت شهری، سواحل دریای کاسپین، جنگلهای هیرکانی و ييلاقات با نمای قله دماوند",
|
||||||
|
"introduction_description_subText": "<ul className='introduction_description_subText'><li>دارای مجوز رسمی از وزارت بهداشت کشور</li><li>درجه یک اعتباربخشی ملی</li><li>بیش از 12 سال تجربه</li><li>تیم چندزبانه (انگلیسی، عربی، ترکی)</li><li>همراهی کامل از زمان ورود تا ترخیص</li><li>هزینههای مقرونبهصرفه با ارائه کیفیت عالی</li><li>خدمات ویژه مانند ترانسفر فرودگاهی، اتاقهای VIP، مترجم و گشت شهری، سواحل دریای کاسپین، جنگلهای هیرکانی و ییلاقات با نمای قله دماوند</li></ul>",
|
||||||
|
"department_introduction": "تیم دپارتمان بیماران بین الملل",
|
||||||
|
"department_introduction_subtitle": "هدف ما این است که شما در تمام مراحل درمان — از مشاوره اولیه تا بازگشت به کشور خود — احساس آرامش، امنیت و همراهی داشته باشید.",
|
||||||
|
"dr_jafarian": {
|
||||||
|
"name": "دکتر محسن جعفریان",
|
||||||
|
"expertise": "دکتری مدیریت خدمات بهداشتی و درمانی",
|
||||||
|
"position": "مدیر بیمارستان / مدیر دپارتمان بیماران بین الملل"
|
||||||
|
},
|
||||||
|
"dr_motamedi": {
|
||||||
|
"name": "دکتر حسن معتمدی مطلق",
|
||||||
|
"expertise": "متخصص طب اورژانس",
|
||||||
|
"position": "پزشک بیماران بین الملل"
|
||||||
|
},
|
||||||
|
"heidarnejad": {
|
||||||
|
"name": "رویا حیدرنژاد",
|
||||||
|
"expertise": "کارشناس فوریت پزشکی",
|
||||||
|
"position": "کارشناس بیماران بین الملل"
|
||||||
|
},
|
||||||
|
"form": {
|
||||||
|
"head_text": "آیا نیاز به مشاوره پزشکی دارید؟",
|
||||||
|
"sub_text": "اطلاعاتی درباره بیماری خود برای ما ارسال نمایید. در اسرع وقت با شما تماس خواهیم گرفت.",
|
||||||
|
"fields": {
|
||||||
|
"first_name": "نام شما",
|
||||||
|
"last_name": "نام خانوادگی شما",
|
||||||
|
"email": "ایمیل",
|
||||||
|
"sex": "جنسیت",
|
||||||
|
"country": "کشور شما",
|
||||||
|
"services": "یکی از پکیج های خدمات پزشکی را انتخاب کنید",
|
||||||
|
"phone_number": "شماره موبایل",
|
||||||
|
"age": "سن شما",
|
||||||
|
"message": "از بیماری تان برایمان بنویسید"
|
||||||
|
},
|
||||||
|
"buttons": {
|
||||||
|
"send_whatsapp": "ارسال درخواست از طریق واتساپ",
|
||||||
|
"send_email": "ارسال درخواست از طریق ایمیل"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pricing_page": {
|
||||||
|
"page_title": "لیست قیمت ها",
|
||||||
|
"table": {
|
||||||
|
"head": [
|
||||||
|
{
|
||||||
|
"name": "نام پکیج"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "نام خدمت"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "حدود قیمت به دلار (آمریکا)"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"patient_rights_charter": {
|
||||||
|
"page_title": "منشور حقوق بیمار",
|
||||||
|
"section_one": {
|
||||||
|
"title": "دریافت مطلوب خدمات سلامت حق بیمار است",
|
||||||
|
"content": "<ul className='list-disc marker:text-secondary marker:text-2xl '>\n<li>خدمات شایسته و در شأن و منزلت انسان و با احترام به ارزشها، اعتقادات فرهنگی و مذهبی باشد.</li>\n<li>ارائه خدمات بر پایه صداقت، انصاف، ادب و همراه با مهربانی باشد.</li>\n<li>فارغ از هرگونه تبعیض از جمله قومی، فرهنگی، مذهبی، نوع بیماری و جنسیتی باشد.</li>\n<li>بر اساس دانش روز و مبتنی بر برتری منافع بیمار باشد.</li>\n<li>در مورد توزیع منابع سلامت مبتنی بر عدالت و اولویتهای درمانی بیماران باشد.</li>\n<li>مبتنی بر هماهنگی ارکان مراقبت اعم از پیشگیری، تشخیص، درمان و توانبخشی باشد.</li>\n<li>به همراه تأمین کلیه امکانات رفاهی پایه و ضروری و به دور از تحمیل درد، رنج و محدودیتهای غیرضروری باشد.</li>\n<li>توجه ویژه به حقوق گروههای آسیبپذیر جامعه از جمله کودکان، زنان باردار، سالمندان، بیماران روانی، زندانیان، معلولان ذهنی و جسمی و افراد بدون سرپرست داشته باشد.</li>\n<li>در سریعترین زمان ممکن و با احترام به وقت بیمار و با در نظر گرفتن متغیرهایی چون زبان، سن و جنس گیرندگان خدمت باشد.</li>\n<li>در مراقبتهای ضروری و فوری (اورژانس)، بدون توجه به تأمین هزینه آن صورت گیرد و در موارد غیر فوری بر اساس ضوابط تعریفشده باشد.</li>\n<li>در مراقبتهای ضروری و فوری (اورژانس)، در صورتی که ارائه خدمات مناسب ممکن نباشد، پس از ارائه خدمات ضروری و توضیحات لازم، زمینه انتقال بیمار به واحد مجهز فراهم گردد.</li>\n<li>در مراحل پایانی حیات که وضعیت بیماری غیرقابل برگشت و مرگ بیمار قریبالوقوع میباشد، خدمات با هدف حفظ آسایش وی ارائه گردد.</li>\n</ul>"
|
||||||
|
},
|
||||||
|
"section_two": {
|
||||||
|
"title": " اطلاعات باید به نحو مطلوب و به میزان کافی در اختیار بیمار قرارگیرد",
|
||||||
|
"content": "<ul className='list-disc marker:text-secondary marker:text-2xl'>\n<li>مفاد منشور حقوق بیمار در زمان پذیرش.</li>\n<li>ضوابط و هزینههای قابل پیشبینی بیمارستان اعم از خدمات درمانی و غیر درمانی و ضوابط بیمه و معرفی سیستمهای حمایتی در زمان پذیرش.</li>\n<li>نام، مسئولیت و رتبه حرفهای اعضای گروه پزشکی مسئول ارائه مراقبت از جمله پزشک، پرستار و دانشجو و ارتباط حرفهای آنها با یکدیگر.</li>\n<li>روشهای تشخیصی و درمانی و نقاط ضعف و قوت هر روش و عوارض احتمالی آن، تشخیص بیماری، پیشآگهی و عوارض آن و نیز کلیه اطلاعات تأثیرگذار در روند تصمیمگیری بیمار.</li>\n<li>نحوه دسترسی به پزشک معالج و اعضای اصلی گروه پزشکی در طول درمان و ارائه آموزشهای ضروری برای استمرار درمان و کلیه اقداماتی که ماهیت پژوهشی دارند.</li>\n<li>اطلاعات باید در زمان مناسب و متناسب با شرایط بیمار از جمله اضطراب و درد و ویژگیهای فردی وی از جمله زبان، تحصیلات و توان درک در اختیار وی قرار گیرد؛ مگر اینکه تأخیر در شروع درمان به واسطه ارائه اطلاعات فوق سبب آسیب به بیمار گردد، یا بیمار علیرغم اطلاع از حق دریافت اطلاعات، از این امر امتناع نماید که در این صورت باید خواست بیمار محترم شمرده شود؛ مگر اینکه عدم اطلاع بیمار، وی یا سایرین را در معرض خطر جدید قرار دهد.</li>\n<li>بیمار میتواند به کلیه اطلاعات ثبتشده در پرونده بالینی خود دسترسی داشته باشد، تصویر آن را دریافت نموده و تصحیح اشتباهات مندرج در آن را درخواست نماید.</li>\n</ul>"
|
||||||
|
},
|
||||||
|
"section_three": {
|
||||||
|
"title": " حق انتخاب و تصمیم گیری آزادانه بیمار در دریافت خدمات سلامت باید محترم شمرده شود.",
|
||||||
|
"content": "<ul className='list-disc space-y-2 text-[1.2rem] marker:text-secondary marker:text-2xl text-[#454547]'>\n<li>انتخاب پزشک معالج و مرکز ارائهکننده خدمات سلامت در چارچوب ضوابط و همچنین انتخاب و نظرخواهی از پزشک دوم بهعنوان مشاور.</li>\n<li>شرکت یا عدم شرکت در هرگونه پژوهش، با اطمینان از اینکه تصمیمگیری وی تأثیری در تداوم و نحوه دریافت خدمات سلامت نخواهد داشت.</li>\n<li>قبول یا رد درمانهای پیشنهادی پس از آگاهی از عوارض احتمالی ناشی از پذیرش یا رد آن؛ مگر در موارد خودکشی یا شرایطی که امتناع از درمان شخص دیگری را در معرض خطر جدی قرار میدهد.</li>\n<li>اعلام نظر قبلی بیمار در مورد اقدامات درمانی آتی، در زمانی که بیمار واجد ظرفیت تصمیمگیری میباشد ثبت و بهعنوان راهنمای اقدامات پزشکی در زمان فقدان ظرفیت تصمیمگیری وی، با رعایت موازین قانونی مدنظر ارائهکنندگان خدمات سلامت و تصمیمگیرنده جایگزین بیمار قرار گیرد.</li>\n<li>انتخاب و تصمیمگیری بیمار باید آزادانه و آگاهانه و مبتنی بر دریافت اطلاعات کافی و جامع (مذکور در بند دوم) باشد.</li>\n<li>پس از ارائه اطلاعات، زمان لازم و کافی به بیمار جهت تصمیمگیری و انتخاب داده شود.</li>\n</ul>"
|
||||||
|
},
|
||||||
|
"section_four": {
|
||||||
|
"title": "دسترسی به نظام کارآمد رسیدگی به شکایات حق بیمار است.",
|
||||||
|
"content": "<ul className='list-disc space-y-2 text-[1.2rem] marker:text-secondary marker:text-2xl text-[#454547]'>\n<li>هر بیمار حق دارد در صورت ادعای نقض حقوق خود که موضوع این منشور است، بدون اختلال در کیفیت دریافت خدمات سلامت، به مقامات ذیصلاح شکایت نماید.</li>\n<li>بیماران حق دارند از نحوه رسیدگی و نتایج شکایت خود آگاه شوند.</li>\n<li>خسارت ناشی از خطای ارائهکنندگان خدمات سلامت باید پس از رسیدگی و اثبات، مطابق مقررات در کوتاهترین زمان ممکن جبران شود.</li>\n</ul>"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"contact_us_page": {
|
||||||
|
"page_title": "ارتباط با ما",
|
||||||
|
"info_box_title": "با ما درارتباط باشید"
|
||||||
|
},
|
||||||
|
"footer": {
|
||||||
|
"under_logo_text": "تیم بیماران بینالملل در بیمارستان ما متشکل از گروهی حرفهای از متخصصین مراقبت سلامت، مترجمین پزشکی، و مشاوران سفر درمانی است که به صورت ۲۴ ساعته و چندزبانه در خدمت بیماران خارجی هستند. هدف ما این است که شما در تمام مراحل درمان — از مشاوره اولیه تا بازگشت به کشور خود — احساس آرامش، امنیت و همراهی داشته باشید.",
|
||||||
|
"our_address": "آدرس ما",
|
||||||
|
"ipd_technician_number": "شماره تماس کارشناس",
|
||||||
|
"hospital_number": "شماره تماس بیمارستان",
|
||||||
|
"contact_us_text": "ارتباط با ما",
|
||||||
|
"contact_us": {
|
||||||
|
"address": " ایران ، مازندران ، آمل ، بلوار مدرس آفتاب 47 بیمارستان شمال",
|
||||||
|
"ipd_technician_number": "09385745269",
|
||||||
|
"hospital_number": "011-4492"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"medical_packages": [
|
||||||
|
{
|
||||||
|
"package_name": "پكيج گوارش",
|
||||||
|
"services": [
|
||||||
|
{"service_name": "آندوسکوپی فوقانی"},
|
||||||
|
{"service_name": "کولونوسکوپی کامل"},
|
||||||
|
{"service_name": "آندوسکوپی و کولونوسکوپی همزمان"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package_name": "پكيج هيستركتومي",
|
||||||
|
"services": [
|
||||||
|
{"service_name": "جراحی سرطان رحم یا دهانه رحم"},
|
||||||
|
{"service_name": "جراحی سرطان تخمدان"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package_name": "پكيج قلب",
|
||||||
|
"services": [
|
||||||
|
{"service_name": "آنژیوگرافی قلب"},
|
||||||
|
{"service_name": "آنژیوپلاستی + استنتگذاری (فنر قلب)"},
|
||||||
|
{"service_name": "تست الکتروفیزیولوژی قلب"},
|
||||||
|
{"service_name": "ابلیشن قلبی"},
|
||||||
|
{"service_name": "نصب دستگاههای قلبی (CRT)"},
|
||||||
|
{"service_name": "نصب دستگاههای قلبی (ICD)"},
|
||||||
|
{"service_name": "نصب دستگاههای قلبی (Pacemaker)"},
|
||||||
|
{"service_name": "CABG"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package_name": "پكيج زيبايي",
|
||||||
|
"services": [
|
||||||
|
{"service_name": "لیپوساکشن / لیپوماتیک (شکم، پهلو، ران)"},
|
||||||
|
{"service_name": "ابدومینوپلاستی (جراحی زیبایی شکم)"},
|
||||||
|
{"service_name": "بلفاروپلاستی (جراحی پلک بالا و پایین)"},
|
||||||
|
{"service_name": "لیفت صورت و گردن"},
|
||||||
|
{"service_name": "پروتز سینه / لیفت سینه (با پروتز)"},
|
||||||
|
{"service_name": "پروتز سینه / لیفت سینه (بدون پروتز)"},
|
||||||
|
{"service_name": "کاشت مو"},
|
||||||
|
{"service_name": "اسليو"},
|
||||||
|
{"service_name": "تزریق چربی به صورت یا بدن"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package_name": "پكيج ارتوپدي",
|
||||||
|
"services": [
|
||||||
|
{"service_name": "تعويض مفصل ران"},
|
||||||
|
{"service_name": "تعويض مفصل زانو"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package_name": "پكيج جراحي مغز",
|
||||||
|
"services": [
|
||||||
|
{"service_name": "جراحي ستون فقرات (فيوژن)"},
|
||||||
|
{"service_name": "جراحي ستون فقرات (لامينكتومي)"},
|
||||||
|
{"service_name": "جراحي ستون فقرات (ديستكتومي)"},
|
||||||
|
{"service_name": "كرانيوتومي"},
|
||||||
|
{"service_name": "جراحي قاعده جمجمه"},
|
||||||
|
{"service_name": "جراحي تومورهاي مغزي"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package_name": "پكيج گوش و حلق و بيني",
|
||||||
|
"services": [
|
||||||
|
{"service_name": "سپتوپلاستی (اصلاح انحراف تیغه بینی)"},
|
||||||
|
{"service_name": "آدنوئیدکتومی و/یا لوزه برداری"},
|
||||||
|
{"service_name": "پلیپ بینی یا سینوس (پولیپکتومی)"},
|
||||||
|
{"service_name": "رینوپلاستی (جراحی بینی)"}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"our_doctors":"پزشکان ما",
|
||||||
|
"license_number":"شماره نظام پزشکی",
|
||||||
|
"search_by_name":"جستجو بر اساس نام پزشک",
|
||||||
|
"select_this":"انتخاب کنید",
|
||||||
|
"search":"جستجو",
|
||||||
|
"our_medical_packages": "<ul><li>💼 هماهنگی کامل پیش از ورود: هماهنگی با بیمارستان شمال برای بررسی مدارک پزشکی، مشاوره با پزشکان متخصص و ارسال برآورد هزینه</li><li>🛬 پذیرش و استقبال از فرودگاه: ترانسفر اختصاصی از فرودگاه به بیمارستان یا هتل</li><li>🌐 مترجم همزمان: ارائه خدمات ترجمه به زبانهای انگلیسی، عربی، کردی، ترکی و...</li><li>🏨 رزرو هتل و اقامتگاه: همکاری با هتلهای همسطح با استانداردهای بینالمللی در نزدیکی بیمارستان</li><li>🧾 راهنمایی و پشتیبانی امور اداری: صدور دعوتنامه برای ویزای درمانی، راهنمایی در امور گمرکی و اقامت</li><li>👨⚕️ دسترسی سریع به پزشکان متخصص: کاملاً هماهنگ با بیمارستان شمال؛ نوبتدهی فوری و ارجاع مستقیم به بهترین پزشکان در هر تخصص</li><li>📋 پیگیری بعد از ترخیص: ارسال پرونده پزشکی، ارتباط با پزشک معالج و پاسخ به سوالات بعدی بیمار</li></ul>",
|
||||||
|
"medical_packages_headTitle":"خدمات پزشکی ما",
|
||||||
|
"transfer_service_page": {
|
||||||
|
"page_title": "خدمات گردشگری",
|
||||||
|
"introduction": {
|
||||||
|
"title": "معرفی تیم گردشگری",
|
||||||
|
"head_text": "<p>تیم گردشگری درمانی بیمارستان شمال با همکاری شرکت راز نوای آسمان البرز با هدف فراهم کردن تجربهای ایمن، راحت و حرفهای برای بیماران بینالملل شکل گرفته است. این تیم وظیفه معرفی قابلیتهای بیمارستان و جذب بیماران از کشورهای دیگر را بر عهده دارد. آنها پل ارتباطی بین بیمارستان و بازارهای بینالمللی هستند.</p>",
|
||||||
|
"mojgan_yaghoubi": {
|
||||||
|
"fullname": "مژگان یعقوبی",
|
||||||
|
"position": "سرتیم و هماهنگ کننده اقامت",
|
||||||
|
"phone_number": "989353093925",
|
||||||
|
"email": "yaqoubi.mozhgan@gmail.com"
|
||||||
|
},
|
||||||
|
"hassan_mozaffarzadeh": {
|
||||||
|
"fullname": "حسن مظفرزاده",
|
||||||
|
"position": "ترانسفر و راهنماي تور",
|
||||||
|
"phone_number": "989353093925",
|
||||||
|
"email": ""
|
||||||
|
},
|
||||||
|
"packages_list": "لیست پکیج ها",
|
||||||
|
"our_serives_ipd": "خدمات ما برای بیماران بین الملل",
|
||||||
|
"packages": [
|
||||||
|
{
|
||||||
|
"name": "پکیج لوکس",
|
||||||
|
"dsc": "<ul><li>اخذ ویزا</li><li>ترانسفر فرودگاهی و شهری</li><li>مترجم همراه</li><li>اقامت فولبورد در سوییت رویال هتل اکسین (اتاق دبل یا تویین)</li><li>گشت یک روزه چشمههای آب معدنی لاریجان یا جنگل بلیرون (انتخاب به عهده مسافر میباشد)</li></ul>",
|
||||||
|
"price": "قیمت پيشنهادي حدود ۱۹۰۰ دلار"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "پکیج عادی",
|
||||||
|
"dsc": "<ul><li>اخذ ویزا</li><li>ترانسفر فرودگاهی و شهری</li><li>مترجم همراه</li><li>اقامت در اتاقهای استاندارد هتل اکسین (اتاق دبل یا تویین) همراه با صبحانه</li><li>گشت نیمروزه شهر آمل</li></ul>",
|
||||||
|
"price": "قیمت پیشنهادی حدود ۱۵۰۰ دلار"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "پکیج اقتصادی",
|
||||||
|
"dsc": "<ul><li>اخذ ویزا</li><li>ترانسفر فرودگاهی و شهری</li><li>مترجم همراه</li><li>اقامت در هتل المپیک با صبحانه</li></ul>",
|
||||||
|
"price": "قیمت پیشنهادی حدود ۹۰۰ دلار"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"image_headTitle": "گشت نیمروزه شهر آمل",
|
||||||
|
"amol_museum": "موزه آمل",
|
||||||
|
"grand_mosque": "مسجد جامع آمل",
|
||||||
|
"fire_temple": "آتشکده آمل"
|
||||||
|
},
|
||||||
|
"jobs_title": "وظایف این تیم",
|
||||||
|
|
||||||
|
"jobs": "<ul><li>پاسخگویی به استعلامها و درخواستهای اولیه بیماران و واسطهها</li><li>اخذ ویزای درمانی و صدور بيمه گردشگري</li><li>رزرو اقامتگاه مناسب با بودجه و ترجیحات بیمار (هتل، مهمانسرا، آپارتمان)</li><li>ترانسفر فرودگاهی از فرودگاه به بیمارستان یا اقامتگاه</li><li>برنامهریزی تورهای تفریحی و فرهنگی در آمل و شهرهای مجاور (در صورت سلامت بیمار)</li><li>همراهی مترجم گردشگری در صورت نیاز</li><li>هماهنگی اقامت همراهان بیمار و خدمات حمل و نقل</li></ul>",
|
||||||
|
"services": "<ul><li>هماهنگی کامل پیش از ورود</li><li>هماهنگی با بیمارستان شمال برای بررسی مدارک پزشکی، مشاوره با پزشکان متخصص و ارسال برآورد هزینه</li><li>پذیرش و استقبال از فرودگاه</li><li>ترانسفر اختصاصی از فرودگاه به بیمارستان یا هتل</li><li>همراهی تورلیدر مسلط به زبان به عنوان راهنما و مترجم</li><li>رزرو هتل و اقامتگاه (همکاری با هتلهای همسطح با استانداردهای بینالمللی در نزدیکی بیمارستان)</li><li>راهنمایی و پشتیبانی امور اداری (صدور دعوتنامه برای ویزای درمانی، راهنمایی در امور گمرکی و اقامت)</li><li>کاملا هماهنگ با بیمارستان شمال: نوبتدهی فوری و ارجاع مستقیم به بهترین پزشکان در هر تخصص</li><li>پیگیری بعد از ترخیص (ارسال پرونده پزشکی، ارتباط با پزشک معالج و پاسخ به سوالات بعدی بیمار)</li></ul><p><strong>هزینه خدمات پایه:</strong> شامل ترنسفر، لیدر همراه، اقامت هر نفر در اتاق دو تخته، اخذ ویزا – 1500 دلار</p><p><strong>تورهای آپشنال تفریحی:</strong> در صورت سلامت بیمار – چشمههای آب معدنی لاریجان با اقامت فولبورد</p>"
|
||||||
|
},
|
||||||
|
"package_price": "قیمت پکیج",
|
||||||
|
"reserve_ipd": "رزرو نوبت و مشاوره رايگان با پزشك و كارشناس IPD",
|
||||||
|
"phone_number": "شماره موبایل",
|
||||||
|
"email": "ایمیل",
|
||||||
|
"oxin_hotel_location":"لوکیشن هتل اکسین",
|
||||||
|
"olympic_hotel_location":"لوکیشن هتل المپیک",
|
||||||
|
"upload_documents":{
|
||||||
|
"head_text":"فرم آپلود مدارک پزشکی",
|
||||||
|
"input_code_placeholder":"کد دریافتی از کارشناس را وارد کنید",
|
||||||
|
"input_files_label":"آپلود چندین فایل از مدارک پزشکی",
|
||||||
|
"input_dsc":"اگر توضیحی بابت مدارک وجود دارد برایمان بنویسید",
|
||||||
|
"sendbutton":"ارسال مدارک"
|
||||||
|
},
|
||||||
|
"related_links":"لینک های مرتبط"
|
||||||
|
}
|
||||||
124
src/app/[lang]/doctors/page.tsx
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
import {DoctorDataType, languages_types} from "@/types";
|
||||||
|
import DoctorsFilterBox from "@/ui/forms/DoctorsFilterBox";
|
||||||
|
import PageHeaderSlider from "@/ui/page-header-slider/PageHeaderSlider";
|
||||||
|
import {toPersianNumber} from "@/utils/functions";
|
||||||
|
import Image from "next/image";
|
||||||
|
import React from "react";
|
||||||
|
import { getDictionary } from "../dictionaries";
|
||||||
|
import { Metadata } from "next";
|
||||||
|
import { pages_titles } from "@/constants";
|
||||||
|
export const metadata: Metadata = {
|
||||||
|
title: pages_titles.doctors['fa'] + ' | ' +'بیمارستان شمال',
|
||||||
|
description: "Shomal Hospital IPD Doctors page",
|
||||||
|
};
|
||||||
|
async function getDoctorsData() {
|
||||||
|
const res = await fetch(`http://localhost:4000/doctors`, {cache: "no-cache"});
|
||||||
|
if (!res.ok) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
const data = await res.json();
|
||||||
|
|
||||||
|
// console.log(data)
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default async function DoctorsPage({
|
||||||
|
params,
|
||||||
|
searchParams,
|
||||||
|
}: {
|
||||||
|
params: Promise<{lang: languages_types}>;
|
||||||
|
searchParams: Promise<{page: string; name: string; expertise: string}>;
|
||||||
|
}) {
|
||||||
|
const {lang} = await params;
|
||||||
|
const {name = "", expertise = ""} = await searchParams;
|
||||||
|
const data = await getDoctorsData();
|
||||||
|
const {our_doctors,license_number,search_by_name,search,select_this}=await getDictionary(lang)
|
||||||
|
const filteredData = data.filter((doctor:DoctorDataType) => {
|
||||||
|
const nameMatch = name
|
||||||
|
? Object.values(doctor.fullname)
|
||||||
|
.join(" ")
|
||||||
|
.toLowerCase()
|
||||||
|
.includes(name.toLowerCase())
|
||||||
|
: true;
|
||||||
|
|
||||||
|
const expertiseMatch = expertise
|
||||||
|
? doctor.category.id.toString() === expertise
|
||||||
|
: true;
|
||||||
|
|
||||||
|
return nameMatch && expertiseMatch;
|
||||||
|
});
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<PageHeaderSlider
|
||||||
|
lang={lang}
|
||||||
|
pageTitle={our_doctors}
|
||||||
|
imageSrc="/header-slider-1.webp"
|
||||||
|
/>
|
||||||
|
<div className="my-16 container">
|
||||||
|
<div className="bg-[#F8F9FA] rounded-4xl lg:px-20 py-16">
|
||||||
|
<h3 className="lg:text-[3em] text-2xl font-black text-blue-primary text-center relative before:absolute before:w-[100px] before:block before:bg-secondary before:-bottom-5 before:h-[2px] before:left-[50%] before:translate-x-[-50%] ">
|
||||||
|
{our_doctors}
|
||||||
|
</h3>
|
||||||
|
<DoctorsFilterBox
|
||||||
|
lang={lang}
|
||||||
|
defaultName={name}
|
||||||
|
defaultExpertise={expertise}
|
||||||
|
dict={{search,search_by_name,select_this}}
|
||||||
|
/>
|
||||||
|
<div className="grid grid-cols-4 gap-10 mt-10 ">
|
||||||
|
{filteredData?.map((doctor: DoctorDataType) => (
|
||||||
|
<div
|
||||||
|
key={doctor.id}
|
||||||
|
className="lg:col-span-1 col-span-3 rounded-2xl border-[1px] border-neutral-200 overflow-hidden relative"
|
||||||
|
>
|
||||||
|
<div className="lg:h-[250px] h-[200px] relative before:absolute before:bottom-0 before:bg-gradient-to-t before:from-white before:to-transparent before:z-10 before:w-full before:h-full before:top-0 before:right-0">
|
||||||
|
<Image
|
||||||
|
src="/doctor.png"
|
||||||
|
fill
|
||||||
|
alt=""
|
||||||
|
className="object-fill"
|
||||||
|
/>
|
||||||
|
<span className="absolute top-2 right-2 p-2 rounded-full text-center text-xs font-semibold bg-blue-primary text-white flex items-center whitespace-nowrap">
|
||||||
|
{doctor.category.name[lang]}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div className=" h-full px-6 py-10 space-y-2 bg-white">
|
||||||
|
<h3 className="lg:text-xl text-lg font-black text-black">
|
||||||
|
{doctor.fullname[lang]}
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<div className="text-secondary">
|
||||||
|
<ul className="space-y-[2px]">
|
||||||
|
{doctor.specialties.map((item) => (
|
||||||
|
<li
|
||||||
|
key={item.id}
|
||||||
|
className="list-inside list-disc md:text-base text-sm font-medium"
|
||||||
|
>
|
||||||
|
{item.name[lang]}
|
||||||
|
</li>
|
||||||
|
))}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span className="text-black text-sm font-medium">
|
||||||
|
{license_number} :{" "}
|
||||||
|
{lang === "en"
|
||||||
|
? doctor?.doctor_identify_number
|
||||||
|
: toPersianNumber(
|
||||||
|
String(doctor?.doctor_identify_number)
|
||||||
|
)}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
154
src/app/[lang]/layout.tsx
Normal file
@@ -0,0 +1,154 @@
|
|||||||
|
import type {Metadata} from "next";
|
||||||
|
import "../globals.css";
|
||||||
|
import {FontVazir} from "@/config/font.config";
|
||||||
|
import TopMenu from "@/ui/components/top-menu/TopMenu";
|
||||||
|
import TopNavbar from "@/ui/top-navbar";
|
||||||
|
import Image from "next/image";
|
||||||
|
import {FooterMenuLinks1} from "@/constants/menu/menu.const";
|
||||||
|
import CustomLink from "@/ui/components/global/CustomLink";
|
||||||
|
import {getHref} from "@/utils/functions";
|
||||||
|
import {languages_types} from "@/types";
|
||||||
|
import { getDictionary } from "./dictionaries";
|
||||||
|
|
||||||
|
export const metadata: Metadata = {
|
||||||
|
title: "Create Next App",
|
||||||
|
description: "Generated by create next app",
|
||||||
|
};
|
||||||
|
export async function generateStaticParams() {
|
||||||
|
return [{lang: "en"}, {lang: "fa"}, {lang: "ar"}];
|
||||||
|
}
|
||||||
|
export default async function RootLayout({
|
||||||
|
children,
|
||||||
|
params,
|
||||||
|
}: Readonly<{
|
||||||
|
children: React.ReactNode;
|
||||||
|
params: Promise<{lang: string}>;
|
||||||
|
}>) {
|
||||||
|
const {lang} = await params;
|
||||||
|
const dict = await getDictionary(lang as languages_types);
|
||||||
|
const {footer} = dict || {};
|
||||||
|
return (
|
||||||
|
<html lang={(await params).lang} dir={`${lang === "en" ? "ltr" : "rtl"}`}>
|
||||||
|
<body
|
||||||
|
className={`${FontVazir.variable} antialiased`}
|
||||||
|
style={{fontFamily: FontVazir.style.fontFamily}}
|
||||||
|
>
|
||||||
|
<TopNavbar lang={lang as languages_types} />
|
||||||
|
<TopMenu lang={lang as languages_types} />
|
||||||
|
{children}
|
||||||
|
<footer className="bg-blue-primary rounded-t-2xl py-20 container ">
|
||||||
|
<div className="grid lg:grid-cols-12 sm:grid-cols-2 grid-cols-1 w-full container lg:gap-x-10 gap-y-0 gap-y-10">
|
||||||
|
<div className="lg:col-span-3 col-span-12 flex flex-col items-center justify-start gap-x-3">
|
||||||
|
<div className="relative h-[140px] w-[140px]">
|
||||||
|
<Image
|
||||||
|
loading="lazy"
|
||||||
|
src="/main-logo.png"
|
||||||
|
fill
|
||||||
|
alt="shomal hospital"
|
||||||
|
style={{
|
||||||
|
color: "transparent",
|
||||||
|
fill: "red",
|
||||||
|
objectFit: "contain",
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<p
|
||||||
|
className={`text-white leading-relaxed mt-4 text-sm ${
|
||||||
|
lang === "en" ? "text-left" : "text-right"
|
||||||
|
}`}
|
||||||
|
>
|
||||||
|
{footer?.under_logo_text}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div className="lg:col-span-5 col-span-12 flex justify-center">
|
||||||
|
<div className="space-y-5">
|
||||||
|
<h4 className="text-white mb-10">{dict.related_links}</h4>
|
||||||
|
<ul className="space-y-4 text-neutral-300 transition-colors duration-300 mt-5">
|
||||||
|
{FooterMenuLinks1.map((link) => (
|
||||||
|
<li
|
||||||
|
key={link.id}
|
||||||
|
className="group cursor-pointer hover:text-secondary flex items-center text-menu-colors relative !h-full "
|
||||||
|
>
|
||||||
|
<span className="flex items-center gap-x-2 !h-full ">
|
||||||
|
<CustomLink
|
||||||
|
href={getHref(link.href, lang)}
|
||||||
|
label={link.label[lang]}
|
||||||
|
className={`font-medium transition-all `}
|
||||||
|
/>
|
||||||
|
</span>
|
||||||
|
</li>
|
||||||
|
))}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="lg:col-span-4 col-span-12">
|
||||||
|
<div className=" p-4 bg-white rounded-xl">
|
||||||
|
<h4 className="font-semibold text-secondary mb-4">
|
||||||
|
{footer?.contact_us_text}
|
||||||
|
</h4>
|
||||||
|
<p className="text-sm">
|
||||||
|
<strong className=" text-blue-primary">
|
||||||
|
{footer?.our_address}
|
||||||
|
</strong>{" "}
|
||||||
|
:{footer?.contact_us?.address}
|
||||||
|
</p>
|
||||||
|
<p className="mt-4 rtl text-sm">
|
||||||
|
<strong className=" text-blue-primary">
|
||||||
|
{footer?.ipd_technician_number}
|
||||||
|
</strong>{" "}
|
||||||
|
:
|
||||||
|
<span style={{direction: "ltr"}}>
|
||||||
|
{footer?.contact_us?.ipd_technician_number}
|
||||||
|
</span>
|
||||||
|
</p>
|
||||||
|
<p className="my-4 rtl text-sm">
|
||||||
|
<strong className=" text-blue-primary">
|
||||||
|
{footer?.hospital_number}
|
||||||
|
</strong>{" "}
|
||||||
|
:
|
||||||
|
<span style={{direction: "ltr"}}>
|
||||||
|
{footer?.contact_us?.hospital_number}
|
||||||
|
</span>
|
||||||
|
</p>
|
||||||
|
<div className="relative w-full pb-[56.25%] rounded-xl overflow-hidden">
|
||||||
|
<iframe
|
||||||
|
src="https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!1d6419.524849772638!2d52.347594!3d36.439127!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x3f8fbd6849bf386b%3A0x26cbc9441b00f373!2sShomal%20Hospital!5e0!3m2!1sen!2sus!4v1762836982418!5m2!1sen!2sus"
|
||||||
|
// width="100%"
|
||||||
|
style={{border: "0"}}
|
||||||
|
allowFullScreen={false}
|
||||||
|
loading="lazy"
|
||||||
|
referrerPolicy="no-referrer-when-downgrade"
|
||||||
|
className="absolute top-0 left-0 w-full h-full border-0"
|
||||||
|
></iframe>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
// import type {Metadata} from "next";
|
||||||
|
// import "../globals.css";
|
||||||
|
// import { languages_types } from "@/types";
|
||||||
|
|
||||||
|
// export const metadata: Metadata = {
|
||||||
|
// title: "Next.js App",
|
||||||
|
// description: "Generated by Next.js",
|
||||||
|
// };
|
||||||
|
|
||||||
|
// export default async function InsideLayout({
|
||||||
|
// children,
|
||||||
|
// params,
|
||||||
|
// }: {
|
||||||
|
// children: React.ReactNode;
|
||||||
|
// params:Promise<{lang:languages_types}>;
|
||||||
|
// }) {
|
||||||
|
// const {lang}=(await params)
|
||||||
|
// return (
|
||||||
|
// <html lang="en">
|
||||||
|
// <body>{children}</body>
|
||||||
|
// </html>
|
||||||
|
// );
|
||||||
|
// }
|
||||||
65
src/app/[lang]/medical-services/[slug]/page.tsx
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
import { sub_packages_data_type } from "@/types";
|
||||||
|
import Accordion from "@/ui/components/global/Accordion";
|
||||||
|
import PageHeaderSlider from "@/ui/page-header-slider/PageHeaderSlider";
|
||||||
|
import {notFound} from "next/navigation";
|
||||||
|
import React from "react";
|
||||||
|
|
||||||
|
async function getData(slug: string) {
|
||||||
|
const res = await fetch(
|
||||||
|
`http://localhost:4000/medical_packages?slug=${slug}`
|
||||||
|
);
|
||||||
|
if (!res.ok) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
const data = await res.json();
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default async function SingleMedicalService({
|
||||||
|
params,
|
||||||
|
}: {
|
||||||
|
params: Promise<{slug: string; lang: "fa" | "en"}>;
|
||||||
|
}) {
|
||||||
|
const {slug, lang} = await params;
|
||||||
|
const data = (await getData(slug)) || [];
|
||||||
|
|
||||||
|
if (!data || !data.length) {
|
||||||
|
return notFound();
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<PageHeaderSlider
|
||||||
|
lang={lang}
|
||||||
|
pageTitle={data[0].title[lang]}
|
||||||
|
imageSrc="/header-slider-1.webp"
|
||||||
|
/>
|
||||||
|
<section className="mt-16 container">
|
||||||
|
<div className="bg-[#F8F9FA] rounded-4xl px-20 py-16">
|
||||||
|
<h3 className="text-[3em] font-black text-blue-primary text-center relative before:absolute before:w-[100px] before:block before:bg-secondary before:-bottom-5 before:h-[2px] before:left-[50%] before:translate-x-[-50%] ">
|
||||||
|
انواع خدمات پزشکی {data[0]?.title[lang]}
|
||||||
|
</h3>
|
||||||
|
<div className="mt-10 space-y-6">
|
||||||
|
{data[0].sub_packages.map((item:sub_packages_data_type, index: number) =>
|
||||||
|
item?.description?.[lang] ? (
|
||||||
|
<Accordion
|
||||||
|
key={item.id}
|
||||||
|
title={item.title[lang]}
|
||||||
|
index={index}
|
||||||
|
description={item?.description?.[lang] ?? ""}
|
||||||
|
services={item?.services?.[lang] ?? ""}
|
||||||
|
price={item?.price?.[lang] ?? ""}
|
||||||
|
thumbnail={item?.thumbnail ?? ""}
|
||||||
|
notes={item?.notes?.[lang] ?? ""}
|
||||||
|
/>
|
||||||
|
) : (
|
||||||
|
""
|
||||||
|
)
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
124
src/app/[lang]/medical-services/page.tsx
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
import PageHeaderSlider from "@/ui/page-header-slider/PageHeaderSlider";
|
||||||
|
import Link from "next/link";
|
||||||
|
import React, {lazy, Suspense} from "react";
|
||||||
|
import {packages_types} from "@/types";
|
||||||
|
import { getDictionary } from "../dictionaries";
|
||||||
|
import { Metadata } from "next";
|
||||||
|
import { pages_titles } from "@/constants";
|
||||||
|
export const metadata: Metadata = {
|
||||||
|
title: pages_titles.medical_services['fa'] + ' | ' +'بیمارستان شمال',
|
||||||
|
description: "Shomal Hospital IPD medical services page",
|
||||||
|
};
|
||||||
|
async function getHeadPackages() {
|
||||||
|
const res = await fetch(
|
||||||
|
`http://localhost:4000/medical_packages?is_parent=true`
|
||||||
|
);
|
||||||
|
if (!res.ok) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
const data = await res.json();
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default async function MedicalServices({
|
||||||
|
params,
|
||||||
|
}: {
|
||||||
|
params: Promise<{lang: "fa" | "en"}>;
|
||||||
|
}) {
|
||||||
|
const packages = await getHeadPackages();
|
||||||
|
const {lang} = await params;
|
||||||
|
const {medical_packages_headTitle,our_medical_packages} =await getDictionary(lang)
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<PageHeaderSlider
|
||||||
|
pageTitle={medical_packages_headTitle}
|
||||||
|
lang={lang}
|
||||||
|
imageSrc="/header-slider-1.webp"
|
||||||
|
/>
|
||||||
|
<section className="mb-24 mt-10 container ">
|
||||||
|
<div className="bg-[#F8F9FA] rounded-4xl px-40 py-16">
|
||||||
|
<h3 className="text-[3em] font-black text-blue-primary text-center relative before:absolute before:w-[100px] before:block before:bg-secondary before:-bottom-5 before:h-[2px] before:left-[50%] before:translate-x-[-50%] ">
|
||||||
|
{medical_packages_headTitle}
|
||||||
|
</h3>
|
||||||
|
<div className="mt-16">
|
||||||
|
{/* <p className="text-justify text-[1.2rem] leading-relaxed text-[#454547]">
|
||||||
|
</p>
|
||||||
|
<br />
|
||||||
|
<br /> */}
|
||||||
|
<div className="introduction_description_subText" dangerouslySetInnerHTML={{__html:our_medical_packages}}/>
|
||||||
|
<div className="w-full mt-20 grid grid-cols-12 gap-6">
|
||||||
|
{packages.map((item: packages_types) => {
|
||||||
|
const LazyComponent = lazy(
|
||||||
|
() => import(`@/ui/components/icons/${item.svg}.tsx`)
|
||||||
|
);
|
||||||
|
return (
|
||||||
|
<div className="col-span-4" key={item.id}>
|
||||||
|
<Link
|
||||||
|
href={`/medical-services/${item.slug}`}
|
||||||
|
className="flex flex-col items-center justify-center py-10 w-full h-full rounded-xl border-[1px] border-neutral-200 bg-white hover:border-secondary"
|
||||||
|
>
|
||||||
|
<span>
|
||||||
|
<Suspense
|
||||||
|
fallback={<div>در حال بارگذاری...</div>}
|
||||||
|
key={item.id}
|
||||||
|
>
|
||||||
|
<LazyComponent />
|
||||||
|
</Suspense>
|
||||||
|
</span>
|
||||||
|
<span className="text-xl font-medium mt-4">
|
||||||
|
{item.title[lang]}
|
||||||
|
</span>
|
||||||
|
</Link>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
|
||||||
|
{/* <div className="col-span-4 rounded-xl border-[1px] border-neutral-200 bg-white flex flex-col items-center justify-center py-10">
|
||||||
|
<span>
|
||||||
|
<HysterectomySvg />
|
||||||
|
</span>
|
||||||
|
<span className="text-xl font-medium mt-4">
|
||||||
|
پکیج هیسترکتومی
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div className="col-span-4 rounded-xl border-[1px] border-neutral-200 bg-white flex flex-col items-center justify-center py-10">
|
||||||
|
<span>
|
||||||
|
<CardiacSvg />
|
||||||
|
</span>
|
||||||
|
<span className="text-xl font-medium mt-4">پکیج قلب</span>
|
||||||
|
</div>
|
||||||
|
<div className="col-span-4 rounded-xl border-[1px] border-neutral-200 bg-white flex flex-col items-center justify-center py-10">
|
||||||
|
<span>
|
||||||
|
<BeautySvg />
|
||||||
|
</span>
|
||||||
|
<span className="text-xl font-medium mt-4">پکیج زیبایی</span>
|
||||||
|
</div>
|
||||||
|
<div className="col-span-4 rounded-xl border-[1px] border-neutral-200 bg-white flex flex-col items-center justify-center py-10">
|
||||||
|
<span className="text-blue-primary">
|
||||||
|
<OrthopedicSvg />
|
||||||
|
</span>
|
||||||
|
<span className="text-xl font-medium mt-4">پکیج ارتوپدی</span>
|
||||||
|
</div>
|
||||||
|
<div className="col-span-4 rounded-xl border-[1px] border-neutral-200 bg-white flex flex-col items-center justify-center py-10">
|
||||||
|
<span className="text-blue-primary">
|
||||||
|
<BrainSurgerySvg />
|
||||||
|
</span>
|
||||||
|
<span className="text-xl font-medium mt-4">پکیج جراحی مغز</span>
|
||||||
|
</div>
|
||||||
|
<div className="col-span-4 rounded-xl border-[1px] border-neutral-200 bg-white flex flex-col items-center justify-center py-10">
|
||||||
|
<span className="text-blue-primary">
|
||||||
|
<EntSvg />
|
||||||
|
</span>
|
||||||
|
<span className="text-xl font-medium mt-4">
|
||||||
|
پکیج گوش و حلق و بینی
|
||||||
|
</span>
|
||||||
|
</div> */}
|
||||||
|
{/* <Accordion items={PACKAGE_SERVICES} /> */}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
204
src/app/[lang]/page.tsx
Normal file
@@ -0,0 +1,204 @@
|
|||||||
|
import React from "react";
|
||||||
|
import PageHeaderSlider from "@/ui/page-header-slider/PageHeaderSlider";
|
||||||
|
import Image from "next/image";
|
||||||
|
import PatientConsultantForm from "@/ui/forms/PatientConsultantForm";
|
||||||
|
import {getDictionary} from "./dictionaries";
|
||||||
|
|
||||||
|
export default async function Page({
|
||||||
|
params,
|
||||||
|
}: {
|
||||||
|
params: Promise<{lang: "en" | "fa" | "ar"}>;
|
||||||
|
}) {
|
||||||
|
const {lang} = await params;
|
||||||
|
const {about_page} = await getDictionary(lang);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
{/* <Dropdown options={site_languages} /> */}
|
||||||
|
<PageHeaderSlider
|
||||||
|
lang={lang}
|
||||||
|
pageTitle={about_page?.page_title}
|
||||||
|
imageSrc="/header-slider-1.webp"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<section className="lg:mb-24 mb-10 lg:mt-10 mt-4 container ">
|
||||||
|
<div className="bg-[#F8F9FA] rounded-4xl lg:px-40 lg:py-16 p-2">
|
||||||
|
{/* <div className="mb-5 flex items-center justify-center">
|
||||||
|
<div className="rounded-xl overflow-hidden relative w-[140px] h-[140px]">
|
||||||
|
<Image
|
||||||
|
src={"/shomalhospital-ipd-logo.jpg"}
|
||||||
|
alt="shomalhospital ipd logo"
|
||||||
|
className="object-cover"
|
||||||
|
fill
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div> */}
|
||||||
|
<h3 className="lg:text-[3em] text-3xl font-black text-blue-primary text-center relative before:absolute before:w-[100px] before:block before:bg-secondary before:-bottom-5 before:h-[2px] before:left-[50%] before:translate-x-[-50%] ">
|
||||||
|
{about_page?.introduction}
|
||||||
|
</h3>
|
||||||
|
<div className="mt-16">
|
||||||
|
<p
|
||||||
|
className={`${
|
||||||
|
lang === "en" ? "text-left" : "text-right"
|
||||||
|
} lg:text-[1.2rem] leading-relaxed text-[#454547]`}
|
||||||
|
>
|
||||||
|
{about_page?.introduction_description_headText}
|
||||||
|
</p>
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<ul className=" space-y-2 lg:text-[1.2rem] text-[#454547]">
|
||||||
|
<div
|
||||||
|
className="introduction_description_subText"
|
||||||
|
dangerouslySetInnerHTML={{
|
||||||
|
__html: about_page?.introduction_description_subText,
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* <div className="grid grid-cols-12 gap-5 mt-5">
|
||||||
|
<div className="col-span-5">
|
||||||
|
<div className="custom-shadow p-10 rounded-lg">
|
||||||
|
<form action="" className="space-y-4">
|
||||||
|
<div className="space-y-2 flex flex-col">
|
||||||
|
<label htmlFor="">نام شما</label>
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
placeholder=""
|
||||||
|
className="border-[1px] border-neutral-400 rounded-lg py-2 px-4"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div className="space-y-2 flex flex-col">
|
||||||
|
<label htmlFor="">ایمیل شما</label>
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
placeholder=""
|
||||||
|
className="border-[1px] border-neutral-400 rounded-lg py-2 px-4"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div className="space-y-2 flex flex-col">
|
||||||
|
<label htmlFor="">پیام شما</label>
|
||||||
|
<textarea
|
||||||
|
rows={4}
|
||||||
|
placeholder=""
|
||||||
|
className="border-[1px] border-neutral-400 rounded-lg py-2 px-4"
|
||||||
|
></textarea>
|
||||||
|
</div>
|
||||||
|
<div className="space-y-2 flex flex-col">
|
||||||
|
<button className="flex items-center justify-center py-4 rounded-lg text-center text-sm font-semibold bg-blue-primary text-white">
|
||||||
|
ارسال
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="col-span-7">
|
||||||
|
<div className="custom-shadow p-10 rounded-lg"></div>
|
||||||
|
</div>
|
||||||
|
</div> */}
|
||||||
|
</section>
|
||||||
|
<section className="lg:mb-24 mb-10 lg:mt-10 mt-4 container ">
|
||||||
|
<div className="rounded-4xl py-16">
|
||||||
|
<h3
|
||||||
|
className={`lg:text-[3em] text-3xl font-black text-blue-primary text-center relative before:absolute before:w-[100px] before:block before:bg-secondary before:-bottom-5 before:h-[2px] before:left-[50%] before:translate-x-[-50%] `}
|
||||||
|
>
|
||||||
|
{about_page?.department_introduction}
|
||||||
|
</h3>
|
||||||
|
<div className="mt-10">
|
||||||
|
{/* <p className="text-justify text-[1.2rem] leading-8 text-[#454547]">
|
||||||
|
تیم بیماران بینالملل در بیمارستان ما متشکل از گروهی حرفهای از متخصصین مراقبت سلامت، مترجمین پزشکی، و مشاوران سفر درمانی است که به صورت ۲۴ ساعته و چندزبانه در خدمت بیماران خارجی هستند.
|
||||||
|
</p> */}
|
||||||
|
<p className="text-center lg:text-[1.2rem] leading-8 text-[#454547]">
|
||||||
|
{about_page?.department_introduction_subtitle}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div className="grid grid-cols-3 gap-x-10 lg:gap-y-0 gap-y-4 mt-10 lg:h-[600px]">
|
||||||
|
<div className="lg:col-span-1 col-span-3 rounded-2xl border-[1px] border-neutral-200 overflow-hidden relative">
|
||||||
|
<div className="lg:h-[410px] h-[300px] relative before:absolute before:bottom-0 before:bg-gradient-to-t before:from-white before:to-transparent before:z-10 before:w-full before:h-full before:top-0 before:right-0">
|
||||||
|
<Image src="/doctor.png" fill alt="" className="object-fill" />
|
||||||
|
</div>
|
||||||
|
<div className=" h-full px-6 py-10 space-y-2 ">
|
||||||
|
<h3 className="lg:text-2xl text-lg font-black text-black">
|
||||||
|
{about_page?.dr_jafarian?.name}
|
||||||
|
</h3>
|
||||||
|
<div>
|
||||||
|
<span className="text-secondary lg:text-xl font-medium">
|
||||||
|
{about_page?.dr_jafarian?.expertise}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span className="text-black lg:text-base text-sm font-medium">
|
||||||
|
{about_page?.dr_jafarian?.position}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="lg:col-span-1 col-span-3 rounded-2xl border-[1px] border-neutral-200 overflow-hidden relative">
|
||||||
|
<div className="lg:h-[410px] h-[200px] relative before:absolute before:bottom-0 before:bg-gradient-to-t before:from-white before:to-transparent before:z-10 before:w-full before:h-full before:top-0 before:right-0">
|
||||||
|
<Image
|
||||||
|
src="/motamedi.jpg"
|
||||||
|
fill
|
||||||
|
alt=""
|
||||||
|
className="object-fill "
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div className=" h-full px-6 py-10 space-y-2 ">
|
||||||
|
<h3 className="text-2xl font-black text-black">
|
||||||
|
{about_page?.dr_motamedi?.name}
|
||||||
|
</h3>
|
||||||
|
<div>
|
||||||
|
<span className="text-secondary text-xl font-medium">
|
||||||
|
{about_page?.dr_motamedi?.expertise}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span className="text-black font-medium">
|
||||||
|
{about_page?.dr_motamedi?.position}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="lg:col-span-1 col-span-3 rounded-2xl border-[1px] border-neutral-200 overflow-hidden relative">
|
||||||
|
<div className="lg:h-[410px] h-[200px] relative before:absolute before:bottom-0 before:bg-gradient-to-t before:from-white before:to-transparent before:z-10 before:w-full before:h-full before:top-0 before:right-0">
|
||||||
|
<Image
|
||||||
|
src="/heidarnejad.jpg"
|
||||||
|
fill
|
||||||
|
alt=""
|
||||||
|
className="object-cover "
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div className=" h-full px-6 py-10 space-y-2 ">
|
||||||
|
<h3 className="text-2xl font-black text-black">
|
||||||
|
{about_page?.heidarnejad?.name}
|
||||||
|
</h3>
|
||||||
|
<div>
|
||||||
|
<span className="text-secondary text-xl font-medium">
|
||||||
|
{about_page?.heidarnejad?.expertise}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span className="text-black font-medium">
|
||||||
|
{about_page?.heidarnejad?.position}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section className="lg:mb-24 mb-10 lg:mt-10 mt-4 container ">
|
||||||
|
<div className="bg-[#F8F9FA] rounded-4xl lg:px-40 lg:py-16 p-2">
|
||||||
|
<h3 className="lg:text-[3em] text-3xl font-black text-blue-primary text-center relative before:absolute before:w-[100px] before:block before:bg-secondary before:-bottom-5 before:h-[2px] before:left-[50%] before:translate-x-[-50%] ">
|
||||||
|
{about_page?.form?.head_text}
|
||||||
|
</h3>
|
||||||
|
<p className="text-center lg:text-[1.2rem] leading-8 text-[#454547] mt-10">
|
||||||
|
{about_page?.form?.sub_text}
|
||||||
|
</p>
|
||||||
|
<PatientConsultantForm lang={lang} dict={about_page} />
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
76
src/app/[lang]/patient-rights-charter/page.tsx
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
import {languages_types} from "@/types";
|
||||||
|
import PageHeaderSlider from "@/ui/page-header-slider/PageHeaderSlider";
|
||||||
|
import React from "react";
|
||||||
|
import {getDictionary} from "../dictionaries";
|
||||||
|
import { pages_titles } from "@/constants";
|
||||||
|
import { Metadata } from "next";
|
||||||
|
export const metadata: Metadata = {
|
||||||
|
title: pages_titles.patient_rights_charter['fa'] + ' | ' +'بیمارستان شمال',
|
||||||
|
description: "Shomal Hospital IPD patient rights charter page",
|
||||||
|
};
|
||||||
|
export default async function PatientRights({
|
||||||
|
params,
|
||||||
|
}: {
|
||||||
|
params: Promise<{lang: languages_types}>;
|
||||||
|
}) {
|
||||||
|
const {lang} = await params;
|
||||||
|
const {patient_rights_charter} = await getDictionary(lang);
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<PageHeaderSlider
|
||||||
|
lang={lang}
|
||||||
|
pageTitle={patient_rights_charter?.page_title}
|
||||||
|
imageSrc="/header-slider-1.webp"
|
||||||
|
/>
|
||||||
|
<section className="my-16 container">
|
||||||
|
<div className="bg-[#F8F9FA] rounded-4xl px-20 py-16">
|
||||||
|
<h3 className="text-[3em] font-black text-blue-primary text-center relative before:absolute before:w-[100px] before:block before:bg-secondary before:-bottom-5 before:h-[2px] before:left-[50%] before:translate-x-[-50%] ">
|
||||||
|
{patient_rights_charter?.page_title}
|
||||||
|
</h3>
|
||||||
|
<div className="mt-16">
|
||||||
|
<h4 className="text-justify text-[1.2rem] leading-relaxed text-secondary font-medium">
|
||||||
|
{patient_rights_charter?.section_one?.title}
|
||||||
|
</h4>
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<div
|
||||||
|
className="introduction_description_subText "
|
||||||
|
dangerouslySetInnerHTML={{
|
||||||
|
__html: patient_rights_charter?.section_one?.content,
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<h4 className="text-justify text-[1.2rem] leading-relaxed text-secondary font-medium my-10">
|
||||||
|
{patient_rights_charter?.section_two?.title}
|
||||||
|
</h4>
|
||||||
|
<div
|
||||||
|
className="introduction_description_subText"
|
||||||
|
dangerouslySetInnerHTML={{
|
||||||
|
__html: patient_rights_charter?.section_two?.content,
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
<h4 className="text-justify text-[1.2rem] leading-relaxed text-secondary font-medium my-10">
|
||||||
|
{patient_rights_charter?.section_three?.title}
|
||||||
|
</h4>
|
||||||
|
<div
|
||||||
|
className="introduction_description_subText"
|
||||||
|
dangerouslySetInnerHTML={{
|
||||||
|
__html: patient_rights_charter?.section_three?.content,
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
<h4 className="text-justify text-[1.2rem] leading-relaxed text-secondary font-medium my-10">
|
||||||
|
{patient_rights_charter?.section_four?.title}
|
||||||
|
</h4>
|
||||||
|
|
||||||
|
<div
|
||||||
|
className="introduction_description_subText"
|
||||||
|
dangerouslySetInnerHTML={{
|
||||||
|
__html: patient_rights_charter?.section_four?.content,
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
271
src/app/[lang]/pricing/page.tsx
Normal file
@@ -0,0 +1,271 @@
|
|||||||
|
import PageHeaderSlider from "@/ui/page-header-slider/PageHeaderSlider";
|
||||||
|
import React from "react";
|
||||||
|
import {getDictionary} from "../dictionaries";
|
||||||
|
import {languages_types} from "@/types";
|
||||||
|
import {Metadata} from "next";
|
||||||
|
import {pages_titles} from "@/constants";
|
||||||
|
export const metadata: Metadata = {
|
||||||
|
title: pages_titles.pricing["fa"] + " | " + "بیمارستان شمال",
|
||||||
|
description: "Shomal Hospital IPD Pricing page",
|
||||||
|
};
|
||||||
|
export default async function PricingPage({
|
||||||
|
params,
|
||||||
|
}: {
|
||||||
|
params: Promise<{lang: languages_types}>;
|
||||||
|
}) {
|
||||||
|
const {lang} = await params;
|
||||||
|
const {pricing_page, medical_packages} = await getDictionary(lang);
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<PageHeaderSlider
|
||||||
|
lang={lang}
|
||||||
|
pageTitle={pricing_page?.page_title}
|
||||||
|
imageSrc="/header-slider-1.webp"
|
||||||
|
/>
|
||||||
|
<div className="my-16 container">
|
||||||
|
<div className="bg-[#F8F9FA] rounded-4xl lg:px-20 py-16">
|
||||||
|
<h3 className="lg:text-[3em] text-2xl font-black text-blue-primary text-center relative before:absolute before:w-[100px] before:block before:bg-secondary before:-bottom-5 before:h-[2px] before:left-[50%] before:translate-x-[-50%] ">
|
||||||
|
{pricing_page?.page_title}
|
||||||
|
</h3>
|
||||||
|
<div className="overflow-x-auto mt-10">
|
||||||
|
<table className="min-w-full border border-gray-200 divide-y divide-gray-200 text-sm">
|
||||||
|
<thead className="bg-blue-100">
|
||||||
|
<tr>
|
||||||
|
<th className="px-4 py-2 text-center font-semibold">
|
||||||
|
{pricing_page.table.head[0].name}
|
||||||
|
</th>
|
||||||
|
<th className="px-4 py-2 text-center font-semibold">
|
||||||
|
{pricing_page.table.head[1].name}
|
||||||
|
</th>
|
||||||
|
<th className="px-4 py-2 text-center font-semibold">
|
||||||
|
{pricing_page.table.head[2].name}
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody className="bg-white divide-y divide-gray-200">
|
||||||
|
<tr>
|
||||||
|
<td rowSpan={3} className="px-4 py-2 font-medium text-center">
|
||||||
|
{medical_packages[0].package_name}
|
||||||
|
</td>
|
||||||
|
<td className="px-4 py-2">
|
||||||
|
{medical_packages[0].services[0].service_name}
|
||||||
|
</td>
|
||||||
|
<td className="px-4 py-2 text-center">350 – 600</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td className="px-4 py-2 ">
|
||||||
|
{medical_packages[0].services[1].service_name}
|
||||||
|
</td>
|
||||||
|
<td className="px-4 py-2 text-center">450 – 800</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td className="px-4 py-2 ">
|
||||||
|
{medical_packages[0].services[2].service_name}
|
||||||
|
</td>
|
||||||
|
<td className="px-4 py-2 text-center">750 – 1,200</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td rowSpan={2} className="px-4 py-2 font-medium text-center">
|
||||||
|
{medical_packages[1].package_name}
|
||||||
|
</td>
|
||||||
|
<td className="px-4 py-2">
|
||||||
|
{medical_packages[1].services[0].service_name}
|
||||||
|
</td>
|
||||||
|
<td className="px-4 py-2 text-center">3,800 – 6,000</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td className="px-4 py-2">
|
||||||
|
{medical_packages[1].services[1].service_name}
|
||||||
|
</td>
|
||||||
|
<td className="px-4 py-2 text-center">4,500 – 7,000</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td rowSpan={8} className="px-4 py-2 font-medium text-center">
|
||||||
|
{medical_packages[2].package_name}
|
||||||
|
</td>
|
||||||
|
<td className="px-4 py-2">
|
||||||
|
{medical_packages[2].services[0].service_name}
|
||||||
|
</td>
|
||||||
|
<td className="px-4 py-2 text-center">900 – 1,300</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td className="px-4 py-2">
|
||||||
|
{medical_packages[2].services[1].service_name}
|
||||||
|
</td>
|
||||||
|
<td className="px-4 py-2 text-center">3,200 – 4,200</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td className="px-4 py-2">
|
||||||
|
{medical_packages[2].services[2].service_name}
|
||||||
|
</td>
|
||||||
|
<td className="px-4 py-2 text-center">1,500 – 2,000</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td className="px-4 py-2">
|
||||||
|
{medical_packages[2].services[3].service_name}
|
||||||
|
</td>
|
||||||
|
<td className="px-4 py-2 text-center">3,000 – 6,000</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td className="px-4 py-2">
|
||||||
|
{medical_packages[2].services[4].service_name}
|
||||||
|
</td>
|
||||||
|
<td className="px-4 py-2 text-center">9,000 – 12,000</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td className="px-4 py-2">
|
||||||
|
{medical_packages[2].services[5].service_name}
|
||||||
|
</td>
|
||||||
|
<td className="px-4 py-2 text-center">7,000 – 10,000</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td className="px-4 py-2">
|
||||||
|
{medical_packages[2].services[6].service_name}
|
||||||
|
</td>
|
||||||
|
<td className="px-4 py-2 text-center">550 – 4,500</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td className="px-4 py-2">
|
||||||
|
{medical_packages[2].services[7].service_name}
|
||||||
|
</td>
|
||||||
|
<td className="px-4 py-2 text-center">5,500-9,000</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td rowSpan={9} className="px-4 py-2 font-medium text-center">
|
||||||
|
{medical_packages[3].package_name}
|
||||||
|
</td>
|
||||||
|
<td className="px-4 py-2">
|
||||||
|
{medical_packages[3].services[0].service_name}
|
||||||
|
</td>
|
||||||
|
<td className="px-4 py-2 text-center">1,800 – 2,800</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td className="px-4 py-2">
|
||||||
|
{medical_packages[3].services[1].service_name}
|
||||||
|
</td>
|
||||||
|
<td className="px-4 py-2 text-center">2,500 – 3,500</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td className="px-4 py-2">
|
||||||
|
{medical_packages[3].services[2].service_name}
|
||||||
|
</td>
|
||||||
|
<td className="px-4 py-2 text-center">1,000 – 1,600</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td className="px-4 py-2">
|
||||||
|
{medical_packages[3].services[3].service_name}
|
||||||
|
</td>
|
||||||
|
<td className="px-4 py-2 text-center">3,500 – 5,000</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td className="px-4 py-2">
|
||||||
|
{medical_packages[3].services[4].service_name}
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td className="px-4 py-2 text-center">2,800 – 3,800</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td className="px-4 py-2">
|
||||||
|
{medical_packages[3].services[5].service_name}
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td className="px-4 py-2 text-center">2,500 – 3,200</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td className="px-4 py-2">
|
||||||
|
{medical_packages[3].services[6].service_name}
|
||||||
|
</td>
|
||||||
|
<td className="px-4 py-2 text-center">1,000 – 1,500</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td className="px-4 py-2">
|
||||||
|
{medical_packages[3].services[7].service_name}
|
||||||
|
</td>
|
||||||
|
<td className="px-4 py-2 text-center">4,500 - 7,000</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td className="px-4 py-2">
|
||||||
|
{medical_packages[3].services[8].service_name}
|
||||||
|
</td>
|
||||||
|
<td className="px-4 py-2 text-center">800 – 1,200</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td
|
||||||
|
rowSpan={2}
|
||||||
|
className="px-4 py-2 font-medium text-center"
|
||||||
|
>
|
||||||
|
{medical_packages[4].package_name}
|
||||||
|
</td>
|
||||||
|
<td className="px-4 py-2">
|
||||||
|
{medical_packages[4].services[0].service_name}
|
||||||
|
</td>
|
||||||
|
<td className="px-4 py-2 text-center">6,600 - 11,700</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td className="px-4 py-2">
|
||||||
|
{medical_packages[4].services[1].service_name}
|
||||||
|
</td>
|
||||||
|
<td className="px-4 py-2 text-center">5,100 - 9,000</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td rowSpan={6} className="px-4 py-2 font-medium text-center">
|
||||||
|
{medical_packages[5].package_name}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr></tr>
|
||||||
|
<tr>
|
||||||
|
<td className="px-4 py-2">
|
||||||
|
{medical_packages[5].services[2].service_name}
|
||||||
|
</td>
|
||||||
|
<td className="px-4 py-2 text-center">4,500 - 9,000</td>
|
||||||
|
</tr>
|
||||||
|
<tr></tr>
|
||||||
|
<tr></tr>
|
||||||
|
<tr>
|
||||||
|
<td className="px-4 py-2">
|
||||||
|
{medical_packages[5].services[5].service_name}
|
||||||
|
</td>
|
||||||
|
<td className="px-4 py-2 text-center">10,000 - 35,000</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td rowSpan={4} className="px-4 py-2 font-medium text-center">
|
||||||
|
{medical_packages[6].package_name}
|
||||||
|
</td>
|
||||||
|
<td className="px-4 py-2">
|
||||||
|
{medical_packages[6].services[0].service_name}
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td className="px-4 py-2 text-center">1,200 – 1,800</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td className="px-4 py-2">
|
||||||
|
{medical_packages[6].services[1].service_name}
|
||||||
|
</td>
|
||||||
|
<td className="px-4 py-2 text-center">1,000 – 1,500</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td className="px-4 py-2">
|
||||||
|
{medical_packages[6].services[2].service_name}
|
||||||
|
</td>
|
||||||
|
<td className="px-4 py-2 text-center">1,000 – 1,400</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td className="px-4 py-2">
|
||||||
|
{medical_packages[6].services[3].service_name}
|
||||||
|
</td>
|
||||||
|
<td className="px-4 py-2 text-center">1,500 – 2,500</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
156
src/app/[lang]/transfer-services/page.tsx
Normal file
@@ -0,0 +1,156 @@
|
|||||||
|
import {languages_types} from "@/types";
|
||||||
|
import PageHeaderSlider from "@/ui/page-header-slider/PageHeaderSlider";
|
||||||
|
import React from "react";
|
||||||
|
import {getDictionary} from "../dictionaries";
|
||||||
|
import Image from "next/image";
|
||||||
|
import TransferServicesPackages from "@/ui/TransferServicesPackages";
|
||||||
|
import {toPersianNumber} from "@/utils/functions";
|
||||||
|
import { Metadata } from "next";
|
||||||
|
import { pages_titles } from "@/constants";
|
||||||
|
export const metadata: Metadata = {
|
||||||
|
title: pages_titles.transfer_services['fa'] + ' | ' +'بیمارستان شمال',
|
||||||
|
description: "Shomal Hospital IPD transfer services page",
|
||||||
|
};
|
||||||
|
export default async function TransferServicePage({
|
||||||
|
params,
|
||||||
|
}: {
|
||||||
|
params: Promise<{lang: languages_types}>;
|
||||||
|
}) {
|
||||||
|
const {lang} = await params;
|
||||||
|
const {transfer_service_page, package_price, phone_number, email,oxin_hotel_location,olympic_hotel_location} =
|
||||||
|
await getDictionary(lang);
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<PageHeaderSlider
|
||||||
|
pageTitle={transfer_service_page.page_title}
|
||||||
|
imageSrc="/header-slider-1.webp"
|
||||||
|
lang={lang}
|
||||||
|
/>
|
||||||
|
<section className="lg:mb-24 mb-10 lg:mt-10 mt-4 container ">
|
||||||
|
<div className="bg-[#F8F9FA] rounded-4xl lg:px-40 lg:py-16 p-2">
|
||||||
|
<h3 className="mb-10 lg:text-[3em] text-3xl font-black text-blue-primary text-center relative before:absolute before:w-[100px] before:block before:bg-secondary before:-bottom-5 before:h-[2px] before:left-[50%] before:translate-x-[-50%] ">
|
||||||
|
{transfer_service_page.introduction?.title}
|
||||||
|
</h3>
|
||||||
|
<div
|
||||||
|
className={`${
|
||||||
|
lang === "en" ? "text-left" : "text-right"
|
||||||
|
} lg:text-[1.2rem] leading-relaxed text-[#454547]`}
|
||||||
|
dangerouslySetInnerHTML={{
|
||||||
|
__html: transfer_service_page.introduction?.head_text,
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
<div className="grid grid-cols-2 gap-x-10 lg:gap-y-0 gap-y-4 mt-10 lg:h-[600px]">
|
||||||
|
<div className="lg:col-span-1 col-span-3 rounded-2xl border-[1px] border-neutral-200 overflow-hidden relative">
|
||||||
|
<div className="lg:h-[410px] h-[300px] relative before:absolute before:bottom-0 before:bg-gradient-to-t before:from-white before:to-transparent before:z-10 before:w-full before:h-full before:top-0 before:right-0">
|
||||||
|
<Image src="/doctor.png" fill alt="" className="object-fill" />
|
||||||
|
</div>
|
||||||
|
<div className=" h-full px-6 py-10 space-y-2 ">
|
||||||
|
<h3 className="lg:text-2xl text-lg font-black text-black">
|
||||||
|
{
|
||||||
|
transfer_service_page.introduction?.mojgan_yaghoubi
|
||||||
|
?.fullname
|
||||||
|
}
|
||||||
|
</h3>
|
||||||
|
<div>
|
||||||
|
<span className="text-secondary lg:text-xl font-medium">
|
||||||
|
{
|
||||||
|
transfer_service_page.introduction?.mojgan_yaghoubi
|
||||||
|
?.position
|
||||||
|
}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span className="text-black lg:text-base text-sm font-medium">
|
||||||
|
{phone_number}:{" "}
|
||||||
|
{lang === "en"
|
||||||
|
? transfer_service_page.introduction?.mojgan_yaghoubi
|
||||||
|
?.phone_number
|
||||||
|
: toPersianNumber(
|
||||||
|
transfer_service_page.introduction?.mojgan_yaghoubi
|
||||||
|
?.phone_number
|
||||||
|
)}
|
||||||
|
+
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span className="text-black lg:text-base text-sm font-medium">
|
||||||
|
{email} :{" "}
|
||||||
|
<a href="mailto:yaqoubi.mozhgan@gmail.com">
|
||||||
|
yaqoubi.mozhgan@gmail.com
|
||||||
|
</a>{" "}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="lg:col-span-1 col-span-3 rounded-2xl border-[1px] border-neutral-200 overflow-hidden relative">
|
||||||
|
<div className="lg:h-[410px] h-[300px] relative before:absolute before:bottom-0 before:bg-gradient-to-t before:from-white before:to-transparent before:z-10 before:w-full before:h-full before:top-0 before:right-0">
|
||||||
|
<Image src="/doctor.png" fill alt="" className="object-fill" />
|
||||||
|
</div>
|
||||||
|
<div className=" h-full px-6 py-10 space-y-2 ">
|
||||||
|
<h3 className="lg:text-2xl text-lg font-black text-black">
|
||||||
|
{
|
||||||
|
transfer_service_page.introduction?.hassan_mozaffarzadeh
|
||||||
|
?.fullname
|
||||||
|
}
|
||||||
|
</h3>
|
||||||
|
<div>
|
||||||
|
<span className="text-secondary lg:text-xl font-medium">
|
||||||
|
{
|
||||||
|
transfer_service_page.introduction?.hassan_mozaffarzadeh
|
||||||
|
?.position
|
||||||
|
}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span className="text-black lg:text-base text-sm font-medium">
|
||||||
|
{phone_number}:{" "}
|
||||||
|
{lang === "en"
|
||||||
|
? transfer_service_page.introduction?.hassan_mozaffarzadeh
|
||||||
|
?.phone_number
|
||||||
|
: toPersianNumber(
|
||||||
|
transfer_service_page.introduction
|
||||||
|
?.hassan_mozaffarzadeh?.phone_number
|
||||||
|
)}
|
||||||
|
+
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span className="text-black lg:text-base text-sm font-medium">
|
||||||
|
{email} : <a href="#"></a>{" "}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section className="lg:mb-24 mb-10 lg:mt-10 mt-4 container ">
|
||||||
|
<div className=" rounded-4xl lg:px-40 lg:py-16 p-2">
|
||||||
|
<h3
|
||||||
|
className={`lg:text-[3em] text-3xl font-black text-blue-primary text-center relative before:absolute before:w-[100px] before:block before:bg-secondary before:-bottom-5 before:h-[2px] before:left-[50%] before:translate-x-[-50%] `}
|
||||||
|
>
|
||||||
|
{transfer_service_page.page_title}
|
||||||
|
</h3>
|
||||||
|
<div
|
||||||
|
className="mt-20 introduction_description_subText"
|
||||||
|
dangerouslySetInnerHTML={{__html: transfer_service_page.jobs}}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section className="lg:mb-24 mb-10 lg:mt-10 mt-4 container ">
|
||||||
|
<div className="bg-[#F8F9FA] rounded-4xl lg:px-40 lg:py-16 p-2">
|
||||||
|
<h3 className="mb-10 lg:text-[3em] text-3xl font-black text-blue-primary text-center relative before:absolute before:w-[100px] before:block before:bg-secondary before:-bottom-5 before:h-[2px] before:left-[50%] before:translate-x-[-50%] ">
|
||||||
|
{transfer_service_page.introduction.our_serives_ipd}
|
||||||
|
</h3>
|
||||||
|
<>
|
||||||
|
<div className="mt-20 introduction_description_subText" dangerouslySetInnerHTML={{__html:transfer_service_page.services}}/>
|
||||||
|
</>
|
||||||
|
<h3 className="my-10 lg:text-[3em] text-3xl font-black text-blue-primary text-center relative before:absolute before:w-[100px] before:block before:bg-secondary before:-bottom-5 before:h-[2px] before:left-[50%] before:translate-x-[-50%] ">
|
||||||
|
{transfer_service_page.introduction.packages_list}
|
||||||
|
</h3>
|
||||||
|
<TransferServicesPackages oxin_hotel_location={oxin_hotel_location} olympic_hotel_location={olympic_hotel_location} transfer_service_page={transfer_service_page} package_price={package_price} />
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
30
src/app/[lang]/upload-documents/page.tsx
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
import UploadDocuments from "@/ui/forms/UploadDocuments";
|
||||||
|
import React from "react";
|
||||||
|
import {getDictionary} from "../dictionaries";
|
||||||
|
import {languages_types} from "@/types";
|
||||||
|
import { Metadata } from "next";
|
||||||
|
import { pages_titles } from "@/constants";
|
||||||
|
export const metadata: Metadata = {
|
||||||
|
title: pages_titles.upload_documents['fa'] + ' | ' +'بیمارستان شمال',
|
||||||
|
description: "Shomal Hospital IPD upload documents page",
|
||||||
|
};
|
||||||
|
export default async function UploadDocumentsPage({
|
||||||
|
params,
|
||||||
|
}: {
|
||||||
|
params: Promise<{lang: languages_types}>;
|
||||||
|
}) {
|
||||||
|
const {lang} = await params;
|
||||||
|
const {upload_documents} = await getDictionary(lang);
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<section className="my-20 container">
|
||||||
|
<div className="bg-[#F8F9FA] rounded-4xl lg:px-40 lg:py-16 p-2">
|
||||||
|
<h3 className="mb-10 lg:text-[3em] text-3xl font-black text-blue-primary text-center relative before:absolute before:w-[100px] before:block before:bg-secondary before:-bottom-5 before:h-[2px] before:left-[50%] before:translate-x-[-50%] ">
|
||||||
|
{upload_documents.head_text}
|
||||||
|
</h3>
|
||||||
|
<UploadDocuments lang={lang} dict={upload_documents} />
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||