Creación de un rastreador de oximetría de pulso con AWS Amplify y AWS sin servidor

Este tutorial muestra una solución de muestra para recopilar, rastrear y compartir datos de oximetría de pulso para múltiples usuarios. Está construido con  tecnologías  sin servidor de AWS  para una escalabilidad y seguridad confiables. La  aplicación externa está escrita en  VueJS  y utiliza  Amplify Framework  . Las mediciones de saturación de oxígeno se  realizan  manualmente o  utilizando un oxímetro de pulso BerryMed  conectado a un navegador a través de  Internet a través de Bluetooth  .





Captura de pantalla de una aplicación externa que se ejecuta en un navegador de escritorio.
Captura de pantalla de una aplicación externa que se ejecuta en un navegador de escritorio.

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





:





  •  Node.js npm





  • BerryMed BM1000C





  • AWS.      AWS





Diagrama de alto nivel de la aplicación completa del monitor de oxígeno.
.

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





Diagrama que muestra cómo funciona el flujo de trabajo de autorización de 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 en el archivo src / aws-export.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 de 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
          
          



    :





    Debería ver un resultado como este
  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 monitorización remota de los signos vitales del paciente es más relevante que nunca. Esta guía muestra una solución de aplicación de telemedicina y salud personal. La solución completa incluye funcionalidad multiusuario y un servidor sin servidor seguro y escalable. La aplicación utiliza un navegador para interactuar con un dispositivo físico para medir la saturación de oxígeno y la frecuencia cardíaca. Publica mediciones en una base de datos utilizando una API sin servidor. Los datos históricos se pueden mostrar como un gráfico de tendencias y otros usuarios también pueden acceder a ellos.








All Articles