AnpherosAnpheros PlatformDevelopers

Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card

تطبيق السجل الصحي الشخصي (PHR) بصيغة FHIR

دليل تعليمي: الواجهة الخلفية لسجل صحي شخصي متصل بصيغة FHIR R4 — بيانات من الأشخاص، المختبرات، المستندات، والأجهزة، جدول زمني، ملف IPS للمشاركة، الموافقة. كود مُختبر.

يحتفظ تطبيق سجل الصحة الشخصي (PHR) بمعلومات صحة شخص واحد — النتائج، القياسات، التشخيصات، الأدوية، المستندات — في سجل يتحكم فيه الشخص، ويتم تجميعه من مصادر متعددة بدلاً من مستشفى واحد. الأجزاء الصعبة ليست الشاشات: بل هي الحصول على البيانات من المختبرات والعيادات والأجهزة بشكل قابل للاستخدام، وتتبع مصدر كل عنصر، والسماح للشخص بمشاركة السجل دون فقدان السيطرة عليه. يبني هذا البرنامج التعليمي الواجهة الخلفية لسجل الصحة الشخصي باستخدام HL7 FHIR R4 مع Anpheros TypeScript SDK؛ تم تشغيل الكود أدناه مقابل نسخة محلية من المنصة باستخدام مفتاح صندوق رمل.

سجلات الصحة الشخصية (PHRs) المرتبطة وغير المرتبطة والمتصلة

النوع مكان تخزين البيانات القيد
مرتبطة (بوابة مريض المستشفى) السجل الصحي الإلكتروني (EHR) لمقدم الخدمة تعرض بيانات هذا المزود فقط؛ تتغير عند تغيير الشخص للأطباء
غير مرتبطة (تطبيق مستقل أو دفتر ملاحظات) قاعدة بيانات التطبيق الخاصة يقوم الشخص بكتابة كل شيء؛ نادرًا ما تغادر البيانات التطبيق
متصلة سجل قياسي تقرأه وتكتبه التطبيقات والمختبرات والعيادات بموافقة الشخص تحتاج إلى معايير وموافقة ومصدر أساسي

سجل الصحة الشخصية (PHR) المتصل هو السجل الذي يستحق البناء اليوم. وهو أيضًا ما تتجه نحوه السياسات: في الولايات المتحدة، يجب على السجلات الصحية الإلكترونية المعتمدة (EHRs) أن توفر للمرضى وصولاً عبر واجهة برمجة التطبيقات (API) المستندة إلى FHIR إلى بياناتهم (US Core)، وفي الاتحاد الأوروبي، تمنح مساحة البيانات الصحية الأوروبية (EHDS) للأشخاص الحق في الوصول إلى بياناتهم الصحية الإلكترونية ومشاركتها مع مقدمي الخدمات الذين يختارونهم، وسيتم تطبيقها تدريجيًا اعتبارًا من عام 2029.

مصدر بيانات السجل الصحي الشخصي (PHR)

  1. الشخص: قياسات منزلية، أعراض، أدوية يتناولها، حالات يعرفها. قم بتمييزها على أنها مُبلّغ عنها من قبل المريض.
  2. تقارير المختبر: معظم الأشخاص يتلقون ملفات PDF؛ يمكن لبعض المختبرات إرسال HL7 v2 أو CSV. يجب أن يصبح كل نتيجة عبارة عن ملاحظة مُرمّزة (API نتائج المختبر Lab results API).
  3. المستندات: خطابات الخروج، تقارير التصوير، الوصفات الطبية. احتفظ بالملف الأصلي، دون تغيير، بجوار البيانات المهيكلة.
  4. الأجهزة والأجهزة القابلة للارتداء: خطوات يومية، معدل ضربات القلب، النوم، ضغط الدم من Apple Health أو Health Connect (بيانات الأجهزة القابلة للارتداء في FHIR wearable data in FHIR).
  5. مقدمو الخدمة: في الولايات المتحدة، واجهات برمجة تطبيقات FHIR المتاحة للمرضى في المستشفيات وشركات التأمين، يتم الوصول إليها باستخدام SMART on FHIR؛ في أماكن أخرى، غالبًا ما تكون مستندات وملخصات مثل الملخص الدولي للمريض (International Patient Summary).

يكتب كل مصدر في نفس السجل. ما يحافظ على موثوقيته هو أن كل عنصر يسجل من كتبه ومن أي نظام (مصدر بيانات الطب medical data provenance).

البنية

 person ──► your PHR app (mobile / web) ──► your backend ──► Anpheros: one FHIR R4 record per person
                                               │                 ├─ Observations, Conditions, Medications, Documents…
   lab report, PDF, device data ───────────────┘                 ├─ Provenance on every write
                                                                 ├─ access log the person can see
   other apps, doctors, AI assistants ◄── consent (OAuth) ───────┴─ $summary (IPS) to share

يحتفظ الواجهة الخلفية (backend) بمفتاح المشروع (sk_test_… في البيئة التجريبية، وليس في التطبيق أبداً). يقوم تطبيقك بتسجيل دخول الأشخاص باستخدام المصادقة الخاصة بك ويتحدث إلى الواجهة الخلفية الخاصة بك؛ تقوم الواجهة الخلفية بربط كل مستخدم بسجل مريض واحد.

خطوة بخطوة

قم بتثبيت الـ SDK (npm install @anpheros/sdk) واحصل على مفتاح sandbox مجاني من لوحة التحكم. تستخدم العينة لوحة دهون HL7 v2 بنتيجتين (lipid-panel.hl7) وأي ملف PDF (report.pdf).

import { readFile } from 'node:fs/promises';
import { Anpheros, apiKey } from '@anpheros/sdk';

const anpheros = new Anpheros({ auth: apiKey(process.env.ANPHEROS_KEY!) });

// 1. One record per person who signs up in your PHR app
const jane = await anpheros.patients.create({ given: 'Jane', family: 'Doe', birth_date: '1984-07-19', gender: 'female' });

// 2. Something the person measured at home
await anpheros.observations.create(jane.id, {
  code: '85354-9', category: 'vital-signs', effective_at: '2026-10-01T08:30:00-05:00', author_type: 'patient',
  components: [{ code: '8480-6', value: 128, unit: 'mm[Hg]' }, { code: '8462-4', value: 82, unit: 'mm[Hg]' }],
});

// 3. A diagnosis and a medication the person reports
await anpheros.conditions.create(jane.id, { code: 'E11.9', system: 'http://hl7.org/fhir/sid/icd-10',
  display: 'Type 2 diabetes mellitus without complications', clinical_status: 'active', onset: '2021-03-15', author_type: 'patient' });
await anpheros.medications.create(jane.id, { code: 'A10BA02', display: 'Metformin 500 mg', status: 'active',
  dosage: '500 mg twice a day', start: '2021-03-20', author_type: 'patient' });

// 4. A lab report the person received, as the lab sent it (HL7 v2)
const lab = await anpheros.labs.importHl7(jane.id, await readFile('lipid-panel.hl7', 'utf8'), { sourceSystem: 'springfield-lis' });

// 5. A PDF they want to keep with the record
const doc = await anpheros.documents.upload(jane.id,
  { title: 'Chest X-ray report', kind: 'imaging_report', content_type: 'application/pdf', date: '2026-10-03' },
  await readFile('report.pdf'));

// 6. One timeline for the home screen
const timeline = await anpheros.timeline.list(jane.id, { limit: 10 });

// 7. A summary to share with a new doctor: the International Patient Summary
const ips = await anpheros.fhir.summary(jane.id);

// 8. Who else can read this record (empty until the person consents to another app)
const grants = await anpheros.grants.of(jane.id);

مطبوعة من هذا التشغيل:

lab:       created 2, unmapped []
document:  final
timeline:  2026-10-03  document    Chest X-ray report
           2026-10-02  observation Cholesterol in HDL [Mass/volume] in Serum or Plasma
           2026-10-02  observation Cholesterol [Mass/volume] in Serum or Plasma
           2026-10-01  observation Blood pressure panel
           2021-03-20  medication  Metformin 500 mg
           2021-03-15  condition   Type 2 diabetes mellitus without complications
IPS:       Allergies, Medications, Problems, Results, Vital signs
grants:    0

كل ما سبق يتم تخزينه بصيغة FHIR R4 — Patient, Observation, Condition, MedicationStatement, DocumentReference — لذلك يمكن قراءة نفس السجل باستخدام أي عميل FHIR (GET /fhir/R4/Patient/{id}/$everything) ونقله إلى مكان آخر سليمًا. استدعاءات /v1 في الـ SDK هي عرض أبسط لنفس الموارد؛ Medical data API يسردها.

المشاركة دون فقدان السيطرة

السجل الصحي الشخصي (PHR) موجود للمشاركة، بشروط الشخص:

العائلات

يحتفظ العديد من سجلات الصحة الشخصية (PHRs) لشخص واحد بعدة أفراد: أطفال، شريك، والد مسن. امنح كل شخص سجله الخاص واربطه بالوصي، بدلاً من خلط بيانات الجميع في سجل واحد. يتم منح الموافقة بعد ذلك لكل سجل على حدة. يصف سجل المريض الطبي النموذج.

ما الذي تبنيه بنفسك، وما الذي لا تبنيه

أنت تبني التجربة: الإعداد، وكيفية شرح النتائج، والتذكيرات، والمخططات، واللغة التي يقرأها الشخص. توفر Anpheros السجل، والتنسيقات القياسية، والموافقة، والمصدر، وسجل الوصول، وعمليات المختبر والمستندات والملخصات.

ما لا تفعله Anpheros لتطبيق السجل الصحي الشخصي (PHR) اليوم: لا تقوم بتسجيل الدخول إلى بوابات المرضى بالمستشفيات أو واجهات برمجة تطبيقات وصول المرضى الأمريكية نيابة عن الشخص (يمكن لتطبيقك القيام بذلك باستخدام عميل SMART on FHIR وكتابة ما يتلقاه)، ولا تقرأ تقارير PDF عبر واجهة برمجة التطبيقات (API)، ولا تقدم نصائح طبية. تطبيق Anpheros الخاص بالسجل الصحي الشخصي، Anpheros Daily، مبني على واجهة برمجة التطبيقات (API) نفسها.

أسئلة متكررة

ما هو السجل الصحي الشخصي (PHR)؟

هو سجل لمعلومات صحة الشخص يحتفظ به الشخص ويسيطر عليه، ويتم تجميعه من عدة مصادر - إدخالاته الخاصة، والمختبرات، والعيادات، والأجهزة - بدلاً من الاحتفاظ به من قبل مزود واحد.

ما هو الفرق بين السجل الصحي الشخصي (PHR) والسجل الصحي الإلكتروني (EHR)؟

يتم الاحتفاظ بالسجل الصحي الإلكتروني (EHR) من قبل منظمة رعاية صحية ويغطي ما سجله مقدمو الخدمة لديها. يتم الاحتفاظ بالسجل الصحي الشخصي (PHR) من قبل الشخص ويمكنه دمج البيانات من جميع مقدمي الخدمة والأجهزة الخاصة به. السجل الصحي الشخصي المرتبط (tethered PHR) هو نافذة على السجل الصحي الإلكتروني لمزود واحد؛ والسجل الصحي الشخصي المتصل (connected PHR) يستخدم المعايير لجمع عدة مصادر معًا.

هل يجب أن يستخدم السجل الصحي الشخصي (PHR) معيار FHIR؟

إذا كان من المقرر مشاركة البيانات مع طبيب أو تطبيق آخر أو مساعد ذكاء اصطناعي في أي وقت، فنعم: يوفر FHIR R4 موارد مرمزة ومُصنفة حسب الإصدار تفهمها الأنظمة الأخرى بالفعل، وهو تنسيق واجهات برمجة التطبيقات (APIs) الخاصة بالوصول للمرضى في الولايات المتحدة وملخص المريض الأوروبي.

كيف يحصل تطبيق السجل الصحي الشخصي (PHR) على بيانات من المستشفيات؟

في الولايات المتحدة، يتم ذلك من خلال واجهات برمجة التطبيقات (APIs) الخاصة بالوصول للمرضى التي تعرضها السجلات الصحية الإلكترونية المعتمدة والعديد من شركات التأمين، باستخدام SMART on FHIR للسماح للشخص بتفويض التطبيق. في أماكن أخرى، تكون في الغالب مستندات وملخصات، يتم استيرادها وتخزينها بجوار البيانات المهيكلة.

أين يجب أن يحتفظ تطبيق السجل الصحي الشخصي (PHR) بمفاتيح واجهة برمجة التطبيقات (API keys)؟

على الخادم الخاص بك. يمكن لمفتاح المشروع قراءة كل سجل أنشأه مشروعك، لذلك يجب ألا يتم شحنه أبدًا داخل تطبيق جوال أو ويب؛ يتحدث التطبيق إلى الواجهة الخلفية الخاصة بك، وتستخدم تطبيقات الأشخاص الآخرين OAuth بموافقة الشخص.

ذات الصلة

Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card

Product updates by email

New features, guides and the end of the beta. One email a month at most.

Send me occasional Anpheros Platform updates by email (new features, API changes, guides). I'll confirm by email and can unsubscribe in one click from any email. Privacy