Création d'un tracker d'oxymétrie de pouls avec AWS Amplify et AWS sans serveur

Ce didacticiel présente un exemple de solution pour collecter, suivre et partager des données d'oxymétrie de pouls pour plusieurs utilisateurs. Il est construit à l'aide des  technologies  sans serveur AWS  pour une évolutivité et une sécurité fiables. L'  application externe est écrite en  VueJS  et utilise le  Framework Amplify  . Les mesures de saturation en oxygène sont  effectuées  manuellement ou à l'  aide d'un oxymètre de pouls BerryMed  connecté à un navigateur via  Internet via Bluetooth  .





Capture d'écran d'une application externe exécutée dans un navigateur de bureau.
Capture d'écran d'une application externe exécutée dans un navigateur de bureau.

, ,    AWS (AWS SAM). -  REST API Amazon API Gateway , AWS Lambda .  Python -    Amazon DynamoDB .   Amazon Cognito .





:





  •  Node.js npm





  • BerryMed BM1000C





  • AWS.      AWS





Diagramme de haut niveau de l'application complète du moniteur d'oxygène.
.

: . Amplify CLI  Amazon Cognito - .      Amazon Cognito     API.  , .





Diagramme montrant le fonctionnement du flux de travail d'autorisation Amazon Cognito
, , Amazon Cognito

.  , ,  AWS Cloud9 IDE.  AWS Cloud9, , .





:





Amplify CLI, .





  1. npm install -g @aws-amplify/cli
          
          



  2. Amplify CLI .   .





    amplify configure
          
          



  3.   GitHub .





    git clone https://github.com/aws-samples/aws-serverless-oxygen-monitor-web-bluetooth.git
          
          



  4. ampify-frontend Amplify CLI.  .





    cd aws-serverless-oxygen-monitor-web-bluetooth/amplify-frontend
    amplify init
          
          



  5. AWS Amplify CLI.





    amplify push
          
          



  6.   aws_userpools_id   src / aws-exports.js .  .





    aws_user_pools_id dans le fichier src / aws-exports.js
    aws_user_pools_id src / aws-exports.js

.   AWS SAM CLI ,   AWS :





  1.    Oxygen-Monitor AWS .





  2.       aws_userpools_id   UserPoolID .





  3.  Deploy () .





  4.  API endpoint ( API),  .





    API Endpiont
    Endpiont API

  1.  ampify-frontend / src / api-config.js     .   API  .





    const apiConfig = {
      “endpoint”: “<API ENDPOINT>”
    };
    
    export default apiConfig;
          
          



  2. .





    cd aws-serverless-oxygen-monitor-web-bluetooth/amplify-frontend
    npm install
    npm run serve
          
          



    :





    Vous devriez voir une sortie comme celle-ci
  3. , :





    amplify publish
          
          



    URL- .





, , .





.  .  , .





BerryMed , .   « », .  Bluetooth Chrome Android.





Bluetooth Bluetooth,   "Enter Manually" ( )  .





, .  , DynamoDB.  , .





, , .  , .  .





, , .





 GitHub  serverless-backend /    AWS SAM   Lambda .  API, - DynamoDB.  Amazon Cognito API, ¨UserPoolID¨, :





JWT, .  DynamoDB, , .





.  ,  AddLevels,  ""   DynamoDB.





 FetchLevels  .  FetchSharedUserLevels Access Table,  , .





.  ,   ManageAccess  , .   Access Table,  .  .





 GetSharedUsers  , .  . FetchUsersWithAccess  , , , .





DynamoDB AWS SAM , .  - . . ,  DynamoDB.





LevelsTable:
    Type: AWS::DynamoDB::Table
    Properties: 
      AttributeDefinitions: 
        - 
          AttributeName: "username"
          AttributeType: "S"
        - 
          AttributeName: "timestamp"
          AttributeType: "N"
      KeySchema: 
        - AttributeName: username
          KeyType: HASH
        - AttributeName: timestamp
          KeyType: RANGE
      ProvisionedThroughput: 
        ReadCapacityUnits: "5"
        WriteCapacityUnits: "5"

  SharedAccessTable:
    Type: AWS::DynamoDB::Table
    Properties: 
      AttributeDefinitions: 
        - 
          AttributeName: "username"
          AttributeType: "S"
        - 
          AttributeName: "shared_user"
          AttributeType: "S"
      KeySchema: 
        - AttributeName: username
          KeyType: HASH
        - AttributeName: shared_user
          KeyType: RANGE
      ProvisionedThroughput: 
        ReadCapacityUnits: "5"
        WriteCapacityUnits: "5"
      
      



 GitHub  ampify-frontend / src /  .  main.js  Amplify VueJS ,  aws-exports.js.  ,  api-config.js.





 components/OxygenMonitor.vue  API API.





API Vue, .





  /ConnectDevice.vue,   Bluetooth Web -  .   UUID Bluetooth  , BerryMed.    Bluetooth,  .





 handleData  .  .





 OxygenMonitor   ConnectDevice  .  .





Vue .





, , Amplify Framework .





La surveillance à distance des signes vitaux des patients est plus que jamais d'actualité. Ce guide présente une solution d'application personnelle de santé et de télémédecine. La solution complète comprend des fonctionnalités multi-utilisateurs et un serveur sans serveur sécurisé et évolutif. L'application utilise un navigateur pour interagir avec un appareil physique afin de mesurer la saturation en oxygène et la fréquence cardiaque. Il publie des mesures dans une base de données à l'aide d'une API sans serveur. Les données historiques peuvent être affichées sous forme de graphique de tendance et peuvent également être consultées par d'autres utilisateurs.








All Articles