Vous trouverez ci-dessous une liste des institutions qui soutiennent les soins médicaux en ligne en fonction de la propagation de la nouvelle infection à coronavirus.
https://www.mhlw.go.jp/stf/seisakunitsuite/bunya/kenkou_iryou/iryou/rinsyo/index_00014.html
Utilisons cela pour créer un processus permettant de découvrir à quoi ressemble le service de soins médicaux en ligne dans le quartier. Nous examinerons également si cela nous permettra d'utiliser les données PDF fournies par le gouvernement.
https://needtec.sakura.ne.jp/yakusyopdf/ https://github.com/mima3/yakusyopdf
Si vous recherchez en entrant la longitude et la latitude ...
Une liste des hôpitaux à proximité s'affiche, cliquez sur la ligne.
Des informations détaillées seront affichées sur la carte.
(1) Obtenez un PDF sur la page d'accueil de la liste des institutions qui soutiennent les soins médicaux en ligne en fonction de la propagation de la nouvelle infection à coronavirus.
(2) Extrayez les informations du tableau du PDF et convertissez-le en JSON. Veuillez vous référer à la page suivante pour le traitement de cette zone. ・ [Convertir le PDF du ministère de la Santé, du Travail et du Bien-être social en CSV ou JSON](https://needtec.sakura.ne.jp/wod07672/2020/04/29/%e5%8e%9a%e7%94%9f%e5% 8a% b4% e5% 83% 8d% e7% 9c% 81% e3% 81% aepdf% e3% 82% 92csv% e3% 82% 84json% e3% 81% ab% e5% a4% 89% e6% 8f% 9b% e3% 81% 99% e3% 82% 8b /)
(3) Combinez le JSON de chaque préfecture en un JSON.
(4) Obtenez et enregistrez la longitude et la latitude de l'adresse dans JSON à l'aide de l'API Yahoo! Geocoder.
(5) Stockez-le dans la base de données et affichez-le à l'écran en fonction de ces informations.
En fait, extraire les données du tableau à partir d'un PDF est assez gênant. Il existe des bibliothèques appelées tabula et camelot, mais cela seul ne fonctionne pas. Il n'y en a pas. Cette section décrit les problèmes survenus lors de l'utilisation de camelot.
Par exemple, supposons que vous ayez des données qui dépassent le contenu de la cellule comme indiqué ci-dessous.
Dans ce cas, le numéro de téléphone et l'URL sont détectés comme un seul groupe. Cette fois, comme méthode pour résoudre ce problème, s'il n'y a pas d'élément requis, nous vérifions les cellules gauche et droite pour voir si elles sont fusionnées. Toutefois, si la cible est une chaîne de données non formatée, comme un code postal ou un numéro de téléphone, elle ne peut pas être restaurée.
camelot consomme beaucoup de mémoire, il est donc préférable de la traiter page par page. Je pense que ce domaine sera utile. https://github.com/camelot-dev/camelot/issues/28
Aussi, en raison du problème de la taille du papier des données traitées cette fois, s'il s'agit d'un processus 32 bits même pour chaque page, la mémoire sera insuffisante, il est donc préférable de l'exploiter avec un processus 64 bits.
Bien qu'il soit mentionné dans le numéro suivant, camelot ne le reconnaît pas bien si vous créez un tableau avec une ligne pointillée.
Detect dotted line #370 https://github.com/atlanhq/camelot/issues/370
Voici comment résoudre ce problème: [Traitez la ligne pointillée comme une ligne continue avec camelot](https://needtec.sakura.ne.jp/wod07672/2020/05/03/camelot%e3%81%a7%e7%82%b9%e7%b7%9a % e3% 82% 92% e5% ae% 9f% e7% b7% 9a% e3% 81% a8% e3% 81% 97% e3% 81% a6% e5% 87% a6% e7% 90% 86% e3 % 81% 99% e3% 82% 8b /)
C'est extrêmement gênant et je pense qu'il est impossible d'analyser les PDF de manière entièrement automatique.
Le traitement prend du temps car certains papiers ont un côté de 1 m. En outre, il est impossible de traiter après la conversion d'un PDF commun en WORD car la taille est trop grande.
Le PDF de la liste des établissements médicaux pris en charge est mis à jour quotidiennement, mais l'URL semble changer à chaque mise à jour. Par exemple, l'URL de Tokyo est la suivante.
Au 28 avril 2020 https://www.mhlw.go.jp/content/000625693.pdf
Au 29 avril 2020 https://www.mhlw.go.jp/content/000626106.pdf
Pour cette raison, l'URL PDF doit être obtenue à partir du lien pour les soins médicaux en ligne basés sur la propagation de la nouvelle infection à coronavirus.
La première ligne de données peut ou non contenir une légende. Il y a une légende dans le cas de Tokyo, mais pas à Hokkaido.
En d'autres termes, il est nécessaire d'ajuster la position d'acquisition de la ligne de données sur la première page pour chaque préfecture.
Par exemple, comparez les PDF des préfectures de Tokyo et d'Ibaraki. L'en-tête est inclus dans la deuxième page et les suivantes de Tokyo, mais pas dans la préfecture d'Ibaraki.
En d'autres termes, il est nécessaire d'ajuster la position d'acquisition de la ligne de données sur la deuxième page et les suivantes pour chaque préfecture. De plus, ce n'est pas toujours le cas même dans la même préfecture.
En fait, jusqu'en avril, Hokkaido avait des lignes d'en-tête sur la deuxième page et les suivantes. C'est peut-être parce que les spécifications au moment de la sortie du fichier varient parfois.
Par exemple, comparez Hokkaido avec les préfectures d'Aichi et de Yamanashi.
** Hokkaido **
** Préfecture d'Aichi **
** Préfecture de Yamanashi **
Les éléments de la colonne peuvent différer d'une préfecture à l'autre, et même s'il s'agit d'éléments communs, ils doivent être ajustés en position. De plus, même dans la même préfecture, les éléments ne sont pas toujours les mêmes. En fait, jusqu'en avril, la préfecture de Yamanashi n'a pas partagé la ligne entre la consultation téléphonique et la consultation en ligne.
Il y a un élément "que le traitement médical soit effectué ou non à l'aide du téléphone pour la première visite", mais dans de nombreux cas, 〇 ou × (ou vide) est écrit, mais la notation est incorrecte. Par exemple, il peut être annoté comme suit.
○
* Prévu pour être fait à l'avenir
Ensuite, il ne s'agit pas simplement de ne prendre que la première lettre, et il existe différentes expressions. Au moins pour le moment, les flous de notation suivants existent.
** Une expression qui indique la présence ou l'absence de "si un traitement médical est effectué ou non en utilisant le téléphone pour la première visite" **
lettre | code |
---|---|
〇 | E38087 |
○ | E2978B |
◯ | E297AF |
△ | E296B3 |
Oui | E58FAF |
● | E2978F |
▲ | E296B2 |
** Une expression qui indique l'absence de "si le traitement médical est effectué ou non par téléphone pour la première visite" **
lettre | code |
---|---|
Vide | |
× | C397 |
x | EFBD98 |
☓ | E29893 |
✕ | E29C95 |
X | 58 |
- | 2D |
- | EFBC8D |
X | EFBCB8 |
✖ | E29C96 |
non | E590A6 |
Le résultat réel de la conversion PDF est le suivant. Il y a un problème avec le programme d'analyse, mais il y a aussi des erreurs dans le PDF en premier lieu.
https://github.com/mima3/yakusyopdf/blob/master/20200503
Cette fois, j'ai converti le PDF publié par le ministère de la Santé, du Travail et du Bien-être social afin qu'il puisse être facilement traité par ordinateur, et créé une application Web en l'utilisant.
Les données peuvent être converties automatiquement jusqu'à un certain point, mais tant que le PDF est utilisé, une automatisation complète est impossible. De plus, même si vous le corrigez à la main, la fréquence de mise à jour est élevée, il y a donc quelques points stricts.
** Si vous avez besoin d'au moins des données précises et de les mettre à jour fréquemment, il est prudent d'éviter d'extraire des données de PDF comme cette fois. ** **
De plus, si vous êtes en mesure de publier les données, nous vous serions reconnaissants de bien vouloir considérer les points suivants.
――Pouvez-vous publier autre chose que PDF? ――Lors de l'utilisation de données, Excel est meilleur. Les fichiers PDF se ressemblent mais sont beaucoup plus difficiles.
c'est tout.
Recommended Posts