@geoalgeria/sante 1.0.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.ar.md CHANGED
@@ -15,8 +15,9 @@
15
15
  **695 مؤسسة صحية عمومية** عبر **58 ولاية** لها مديرية للصحة — المؤسسات العمومية
16
16
  الاستشفائية (EPH)، ومؤسسات الصحة الجوارية (EPSP)، والمؤسسات الاستشفائية المتخصصة
17
17
  (EHS)، والمراكز الاستشفائية الجامعية (CHU) من **وزارة الصحة (MSP)**، ثنائية اللغة
18
- عربي/فرنسي، **600 منها بإحداثيات** عبر OpenStreetMap وWikidata مع ربطٍ
19
- بالبلدية والولاية. متوفر بصيغ JSON وCSV وGeoJSON وTypeScript. جزء من
18
+ عربي/فرنسي، **600 منها بإحداثيات** (124 بنقطة دقيقة من OpenStreetMap/Wikidata،
19
+ و476 بمركز ثقل البلدية) مع ربطٍ بالبلدية والولاية. متوفر بصيغ JSON وCSV
20
+ وGeoJSON وTypeScript. جزء من
20
21
  [GeoAlgeria](https://github.com/yasserstudio/geoalgeria).
21
22
 
22
23
  ```bash
@@ -61,12 +62,20 @@ const mappable = all.filter((e) => e.lat != null);
61
62
 
62
63
  **حسب دقّة الإحداثيات** (`geo_precision`)
63
64
 
65
+ | القيمة | العدد | المعنى |
66
+ | --- | --- | --- |
67
+ | `exact` | 124 | نقطة دقيقة من مرفق في OSM أو Wikidata ضمن البلدية |
68
+ | `approximate` | 476 | مركز ثقل بلدية المؤسسة |
69
+ | `null` | 95 | لم تُربط البلدية — بلا إحداثيات (`lat`/`lng` أيضًا `null`) |
70
+
71
+ **حسب طريقة الحصول على الإحداثية** (`geo_method`)
72
+
64
73
  | القيمة | العدد | المعنى |
65
74
  | --- | --- | --- |
66
75
  | `osm_point` | 121 | نقطة دقيقة من مرفق في OpenStreetMap ضمن البلدية |
67
76
  | `wikidata_point` | 3 | نقطة دقيقة من مرفق في Wikidata ضمن البلدية |
68
77
  | `commune_centroid` | 476 | مركز ثقل بلدية المؤسسة (تقريبي) |
69
- | `none` | 95 | لم تُربط البلدية — بلا إحداثيات |
78
+ | `null` | 95 | لا توجد طريقةالسجل بلا إحداثيات |
70
79
 
71
80
  > **السجل رسمي؛ أما الإحداثيات فأفضل ما أمكن.** الأسماء والنوع والولاية من وزارة
72
81
  > الصحة. لا تنشر الوزارة إحداثيات، فيستنتجها GeoAlgeria (انظر *المصدر والمنهجية*).
@@ -95,7 +104,7 @@ const all: HealthEstablishment[] = sante.sante();
95
104
  ```
96
105
  data/
97
106
  sante.json # 695 مؤسسة (مصفوفة)
98
- metadata.json # المصادر، الأعداد، التغطية، generated_at
107
+ metadata.json # المصادر، الأعداد، التغطية، updated
99
108
  csv/sante.csv # المستودع + الإصدار (ليس في حزمة npm)
100
109
  geojson/sante.geojson # معالم نقطية (السجلات ذات الإحداثيات)
101
110
  ```
@@ -106,33 +115,38 @@ data/
106
115
  {
107
116
  "id": "01-ehs-02",
108
117
  "name": "Etablissement Hospitalier Spécialisé Psychiatrie Adrar",
109
- "name_ar": "المؤسسة الاستشفائية المتخصصة في الأمراض العقلية أدرار",
110
118
  "name_fr": "Etablissement Hospitalier Spécialisé Psychiatrie Adrar",
119
+ "name_ar": "المؤسسة الاستشفائية المتخصصة في الأمراض العقلية أدرار",
120
+ "wilaya_code": "01",
121
+ "commune_code": "0101",
122
+ "commune": "Adrar",
123
+ "lat": 27.875834,
124
+ "lng": -0.307533,
125
+ "geo_precision": "exact",
126
+ "geo_method": "osm_point",
127
+ "source": "msp",
128
+ "refs": {
129
+ "osm": "way/432370657",
130
+ "msp": "3588"
131
+ },
111
132
  "type": "ehs",
112
133
  "type_label_fr": "Établissement Hospitalier Spécialisé",
113
134
  "type_label_ar": "المؤسسة الاستشفائية المتخصصة",
114
135
  "sector": "public",
115
- "wilaya": "Adrar",
116
- "wilaya_ar": "أدرار",
117
- "wilaya_code": "01",
118
- "commune": "Adrar",
119
- "commune_code": 101,
120
- "source": "msp+osm",
121
- "geo_precision": "osm_point",
122
- "wikidata": null,
123
- "osm_id": "way/432370657",
124
- "msp_id": 3588,
125
- "slug": "etablissement-hospitalier-specialise-psychiatrie-adrar",
126
- "lat": 27.875834,
127
- "lng": -0.307533
136
+ "slug": "etablissement-hospitalier-specialise-psychiatrie-adrar"
128
137
  }
129
138
  ```
130
139
 
131
140
  `id` مفتاح ثابت `{wilaya_code}-{type}-{seq}` يولّده GeoAlgeria (لا تنشر الوزارة
132
- رمزًا). `name` هو الاسم الفرنسي إن وُجد، وإلا العربي. يُشتقّ `type` من العنوان،
133
- و`wilaya` من وسم الوزارة. `sector` يساوي `"public"` لكامل سجل الوزارة (العيادات
134
- الخاصة، عند إضافتها، ستحمل `"private"`). يبيّن `source` السجلات المساهِمة، و
135
- `geo_precision` مصدر الإحداثية. تكون `lat`/`lng` بقيمة `null` للسجلات الـ95 التي
141
+ رمزًا) — قيمة مبهمة، فريدة ضمن `sante.json`. `name` هو الاسم الفرنسي إن وُجد،
142
+ وإلا العربي. يُشتقّ `type` من العنوان، و`wilaya_code` من وسم الوزارة. `sector`
143
+ يساوي `"public"` لكامل سجل الوزارة (العيادات الخاصة، عند إضافتها، ستحمل
144
+ `"private"`). يساوي `source` دائمًا `"msp"` (سجل وزارة الصحة)؛ يحمل `refs`
145
+ معرّفات المصادر المساهِمة — دائمًا `msp`، إضافة إلى `osm` أو `wikidata` عند
146
+ رفع الإحداثية إلى نقطة دقيقة. تكون `geo_precision` إما `"exact"` أو
147
+ `"approximate"` أو `null`؛ ويبيّن `geo_method` كيفية الحصول على الإحداثية
148
+ (`osm_point`، أو `wikidata_point`، أو `commune_centroid`، أو `null`). تكون
149
+ `lat`/`lng`/`geo_precision`/`geo_method` كلّها `null` معًا للسجلات الـ95 التي
136
150
  تعذّر ربط بلديتها.
137
151
 
138
152
  > **الإحداثيات والبلدية مُستنتَجة وليست من الوزارة.** تَسرد وزارة الصحة الأسماء
package/README.fr.md CHANGED
@@ -16,7 +16,8 @@
16
16
  direction de la santé — établissements publics hospitaliers (EPH), de santé de
17
17
  proximité (EPSP), hospitaliers spécialisés (EHS) et centres hospitalo-universitaires
18
18
  (CHU) du **Ministère de la Santé (MSP)**, bilingues français/arabe, **600
19
- géolocalisés** via OpenStreetMap et Wikidata avec rattachement commune/wilaya.
19
+ géolocalisés** (124 sur un point précis OpenStreetMap/Wikidata, 476 sur un
20
+ centroïde de commune) avec rattachement commune/wilaya.
20
21
  Livré en JSON, CSV, GeoJSON et TypeScript. Fait partie de
21
22
  [GeoAlgeria](https://github.com/yasserstudio/geoalgeria).
22
23
 
@@ -63,12 +64,20 @@ const mappable = all.filter((e) => e.lat != null);
63
64
 
64
65
  **Par précision des coordonnées** (`geo_precision`)
65
66
 
67
+ | Valeur | Nombre | Signification |
68
+ | --- | --- | --- |
69
+ | `exact` | 124 | point précis d'un établissement OSM ou Wikidata dans la commune |
70
+ | `approximate` | 476 | centroïde de la commune de l'établissement |
71
+ | `null` | 95 | localité non rattachée à une commune — pas de coordonnées (`lat`/`lng` aussi `null`) |
72
+
73
+ **Par méthode d'obtention** (`geo_method`)
74
+
66
75
  | Valeur | Nombre | Signification |
67
76
  | --- | --- | --- |
68
77
  | `osm_point` | 121 | point précis d'un établissement OpenStreetMap dans la commune |
69
78
  | `wikidata_point` | 3 | point précis d'un établissement Wikidata dans la commune |
70
79
  | `commune_centroid` | 476 | centroïde de la commune de l'établissement (approximatif) |
71
- | `none` | 95 | localité non rattachée à une commune — pas de coordonnées |
80
+ | `null` | 95 | aucune méthode l'enregistrement n'a pas de coordonnées |
72
81
 
73
82
  > **Le registre est officiel ; les coordonnées sont au mieux.** Les noms, le type
74
83
  > et la wilaya proviennent du Ministère de la Santé. Le MSP ne publie pas de
@@ -98,7 +107,7 @@ chaque [GitHub Release](https://github.com/yasserstudio/geoalgeria/releases) :
98
107
  ```
99
108
  data/
100
109
  sante.json # 695 établissements (tableau)
101
- metadata.json # sources, totaux, couverture, generated_at
110
+ metadata.json # sources, totaux, couverture, updated
102
111
  csv/sante.csv # dépôt + Release (pas dans le tarball npm)
103
112
  geojson/sante.geojson # entités Point (enregistrements géolocalisés)
104
113
  ```
@@ -109,36 +118,41 @@ data/
109
118
  {
110
119
  "id": "01-ehs-02",
111
120
  "name": "Etablissement Hospitalier Spécialisé Psychiatrie Adrar",
112
- "name_ar": "المؤسسة الاستشفائية المتخصصة في الأمراض العقلية أدرار",
113
121
  "name_fr": "Etablissement Hospitalier Spécialisé Psychiatrie Adrar",
122
+ "name_ar": "المؤسسة الاستشفائية المتخصصة في الأمراض العقلية أدرار",
123
+ "wilaya_code": "01",
124
+ "commune_code": "0101",
125
+ "commune": "Adrar",
126
+ "lat": 27.875834,
127
+ "lng": -0.307533,
128
+ "geo_precision": "exact",
129
+ "geo_method": "osm_point",
130
+ "source": "msp",
131
+ "refs": {
132
+ "osm": "way/432370657",
133
+ "msp": "3588"
134
+ },
114
135
  "type": "ehs",
115
136
  "type_label_fr": "Établissement Hospitalier Spécialisé",
116
137
  "type_label_ar": "المؤسسة الاستشفائية المتخصصة",
117
138
  "sector": "public",
118
- "wilaya": "Adrar",
119
- "wilaya_ar": "أدرار",
120
- "wilaya_code": "01",
121
- "commune": "Adrar",
122
- "commune_code": 101,
123
- "source": "msp+osm",
124
- "geo_precision": "osm_point",
125
- "wikidata": null,
126
- "osm_id": "way/432370657",
127
- "msp_id": 3588,
128
- "slug": "etablissement-hospitalier-specialise-psychiatrie-adrar",
129
- "lat": 27.875834,
130
- "lng": -0.307533
139
+ "slug": "etablissement-hospitalier-specialise-psychiatrie-adrar"
131
140
  }
132
141
  ```
133
142
 
134
143
  `id` est une clé stable `{wilaya_code}-{type}-{seq}` synthétisée par GeoAlgeria
135
- (le MSP ne publie pas de code). `name` est le nom français s'il existe, sinon
136
- l'arabe. `type` est déduit du titre ; `wilaya` de l'étiquette du MSP. `sector`
137
- vaut `"public"` pour tout le registre MSP (les cliniques privées, une fois
138
- ajoutées, porteront `"private"`). `source` indique les registres ayant
139
- contribué ; `geo_precision` l'origine de la coordonnée. `lat`/`lng` valent
140
- `null` pour les 95 enregistrements dont la localité n'a pu être rattachée à une
141
- commune.
144
+ (le MSP ne publie pas de code) opaque, unique au sein de `sante.json`.
145
+ `name` est le nom français s'il existe, sinon l'arabe. `type` est déduit du
146
+ titre ; `wilaya_code` de l'étiquette du MSP. `sector` vaut `"public"` pour tout
147
+ le registre MSP (les cliniques privées, une fois ajoutées, porteront
148
+ `"private"`). `source` vaut toujours `"msp"` (le registre du Ministère de la
149
+ Santé) ; `refs` porte les identifiants de provenance ayant contribué
150
+ toujours `msp`, plus `osm` ou `wikidata` quand la coordonnée a été remplacée
151
+ par un point précis. `geo_precision` vaut `"exact"`, `"approximate"` ou
152
+ `null` ; `geo_method` indique comment la coordonnée a été obtenue (`osm_point`,
153
+ `wikidata_point`, `commune_centroid`, ou `null`). `lat`/`lng`/`geo_precision`/
154
+ `geo_method` valent tous `null` ensemble pour les 95 enregistrements dont la
155
+ localité n'a pu être rattachée à une commune.
142
156
 
143
157
  > **Les coordonnées et la commune sont dérivées, pas issues du MSP.** Le
144
158
  > Ministère de la Santé ne liste que noms, type et wilaya. GeoAlgeria rattache la
package/README.md CHANGED
@@ -14,9 +14,9 @@
14
14
 
15
15
  **695 public health establishments** across all **58 wilayas** with health
16
16
  directorates — public hospitals (EPH), proximity-health establishments (EPSP),
17
- specialized hospitals (EHS) and university hospitals (CHU) from the **Ministère
18
- de la Santé (MSP)**, bilingual French/Arabic, **600 geocoded** via OpenStreetMap
19
- and Wikidata with commune/wilaya linkage. Shipped as JSON, CSV, GeoJSON, and
17
+ specialized hospitals (EHS) and university hospitals (CHU) from the **Ministry of Health (MoH)**, bilingual French/Arabic, **600 geocoded** (124 to a precise
18
+ OpenStreetMap/Wikidata point, 476 to a commune centroid) with commune/wilaya
19
+ linkage. Shipped as JSON, CSV, GeoJSON, and
20
20
  TypeScript. Part of [GeoAlgeria](https://github.com/yasserstudio/geoalgeria).
21
21
 
22
22
  ```bash
@@ -62,17 +62,25 @@ const mappable = all.filter((e) => e.lat != null);
62
62
 
63
63
  **By coordinate precision** (`geo_precision`)
64
64
 
65
+ | Value | Count | Meaning |
66
+ | --- | --- | --- |
67
+ | `exact` | 124 | precise point from an OSM or Wikidata facility in the commune |
68
+ | `approximate` | 476 | the establishment's commune centroid |
69
+ | `null` | 95 | locality not resolved to a commune — no coordinates (`lat`/`lng` also `null`) |
70
+
71
+ **By coordinate method** (`geo_method`)
72
+
65
73
  | Value | Count | Meaning |
66
74
  | --- | --- | --- |
67
75
  | `osm_point` | 121 | precise point from an OpenStreetMap facility in the commune |
68
76
  | `wikidata_point` | 3 | precise point from a Wikidata facility in the commune |
69
77
  | `commune_centroid` | 476 | the establishment's commune centroid (approximate) |
70
- | `none` | 95 | locality not resolved to a commune — no coordinates |
78
+ | `null` | 95 | no method record has no coordinate |
71
79
 
72
80
  > **The registry is official; the coordinates are best-effort.** Names, type and
73
- > wilaya come from the Ministère de la Santé. The MSP publishes no coordinates,
81
+ > wilaya come from the Ministry of Health. The MoH publishes no coordinates,
74
82
  > so GeoAlgeria derives them — see *Source & method* below. Counts move as the
75
- > MSP, OpenStreetMap and Wikidata are edited; each rebuild reflects their current
83
+ > MoH, OpenStreetMap and Wikidata are edited; each rebuild reflects their current
76
84
  > state.
77
85
 
78
86
  ## Formats
@@ -98,7 +106,7 @@ const all: HealthEstablishment[] = sante.sante();
98
106
  ```
99
107
  data/
100
108
  sante.json # 695 establishments (array)
101
- metadata.json # sources, counts, coverage, generated_at
109
+ metadata.json # sources, counts, coverage, updated
102
110
  csv/sante.csv # repo + Release bundle (not in npm tarball)
103
111
  geojson/sante.geojson # Point features (geocoded records only)
104
112
  ```
@@ -109,38 +117,44 @@ data/
109
117
  {
110
118
  "id": "01-ehs-02",
111
119
  "name": "Etablissement Hospitalier Spécialisé Psychiatrie Adrar",
112
- "name_ar": "المؤسسة الاستشفائية المتخصصة في الأمراض العقلية أدرار",
113
120
  "name_fr": "Etablissement Hospitalier Spécialisé Psychiatrie Adrar",
121
+ "name_ar": "المؤسسة الاستشفائية المتخصصة في الأمراض العقلية أدرار",
122
+ "wilaya_code": "01",
123
+ "commune_code": "0101",
124
+ "commune": "Adrar",
125
+ "lat": 27.875834,
126
+ "lng": -0.307533,
127
+ "geo_precision": "exact",
128
+ "geo_method": "osm_point",
129
+ "source": "msp",
130
+ "refs": {
131
+ "osm": "way/432370657",
132
+ "msp": "3588"
133
+ },
114
134
  "type": "ehs",
115
135
  "type_label_fr": "Établissement Hospitalier Spécialisé",
116
136
  "type_label_ar": "المؤسسة الاستشفائية المتخصصة",
117
137
  "sector": "public",
118
- "wilaya": "Adrar",
119
- "wilaya_ar": "أدرار",
120
- "wilaya_code": "01",
121
- "commune": "Adrar",
122
- "commune_code": 101,
123
- "source": "msp+osm",
124
- "geo_precision": "osm_point",
125
- "wikidata": null,
126
- "osm_id": "way/432370657",
127
- "msp_id": 3588,
128
- "slug": "etablissement-hospitalier-specialise-psychiatrie-adrar",
129
- "lat": 27.875834,
130
- "lng": -0.307533
138
+ "slug": "etablissement-hospitalier-specialise-psychiatrie-adrar"
131
139
  }
132
140
  ```
133
141
 
134
142
  `id` is a stable `{wilaya_code}-{type}-{seq}` key synthesized by GeoAlgeria (the
135
- MSP publishes no establishment code). `name` is the French name where available,
136
- else Arabic. `type` is derived from the establishment's title; `wilaya` from the
137
- MSP's wilaya tag. `sector` is `"public"` for the whole MSP registry (private
138
- clinics, when added, will carry `"private"`). `source` records which registries
139
- contributed; `geo_precision` records where the coordinate came from. `lat`/`lng`
140
- are `null` for the 95 records whose locality could not be matched to a commune.
141
-
142
- > **Coordinates and commune are derived, not from the MSP.** The Ministère de la
143
- > Santé lists names, type and wilaya only. GeoAlgeria matches each
143
+ MoH publishes no establishment code) opaque, unique within `sante.json`.
144
+ `name` is the French name where available, else Arabic. `type` is derived from
145
+ the establishment's title; `wilaya_code` from the MoH's wilaya tag. `sector` is
146
+ `"public"` for the whole MoH registry (private clinics, when added, will carry
147
+ `"private"`). `source` is always `"msp"` (the Ministry of Health registry);
148
+ `refs` carries the per-provenance ids that contributed the record `msp`
149
+ always, plus `osm` or `wikidata` when the coordinate was upgraded to a precise
150
+ point. `geo_precision` is `"exact"`, `"approximate"`, or `null`; `geo_method`
151
+ names how the coordinate was obtained (`osm_point`, `wikidata_point`,
152
+ `commune_centroid`, or `null`). `lat`/`lng`/`geo_precision`/`geo_method` are all
153
+ `null` together for the 95 records whose locality could not be matched to a
154
+ commune.
155
+
156
+ > **Coordinates and commune are derived, not from the MoH.** The Ministry of
157
+ > Health lists names, type and wilaya only. GeoAlgeria matches each
144
158
  > establishment's locality to the [`geoalgeria`](https://www.npmjs.com/package/geoalgeria)
145
159
  > commune set within its wilaya (giving `commune`, `commune_code` and a centroid
146
160
  > coordinate), then upgrades the coordinate to a precise point where a hospital
@@ -158,7 +172,7 @@ you turn an establishment's `commune_code` into a polygon or centroid. Use
158
172
 
159
173
  Run `npm run fetch` to regenerate every output. It:
160
174
 
161
- 1. pulls the **Ministère de la Santé** establishment registry from the
175
+ 1. pulls the **Ministry of Health** establishment registry from the
162
176
  `sante.gov.dz` WordPress REST API (`healthinstitution`), in French and Arabic,
163
177
  each tagged with its wilaya;
164
178
  2. derives the **type** from each title and **pairs** the French and Arabic posts
@@ -176,7 +190,7 @@ Raw source pulls are cached under
176
190
 
177
191
  Package **code** is [MIT](LICENSE). The **data** is a composite:
178
192
 
179
- - The **Ministère de la Santé** registry (names, type, wilaya) is a factual
193
+ - The **Ministry of Health** registry (names, type, wilaya) is a factual
180
194
  public-sector listing.
181
195
  - **Coordinates** are derived from **Wikidata** (**CC0**, public domain) and
182
196
  **OpenStreetMap** (**© OpenStreetMap contributors**, licensed under the