Membangun pelacak oksimetri nadi menggunakan AWS Amplify dan AWS tanpa server

Tutorial ini mendemonstrasikan solusi sampel untuk mengumpulkan, melacak, dan berbagi data oksimetri nadi untuk beberapa pengguna. Itu dibangun menggunakan  teknologi  tanpa server AWS  untuk skalabilitas dan keamanan yang andal.  Aplikasi eksternal ditulis dalam  VueJS  dan menggunakan  Kerangka Kerja Amplify  . Pengukuran saturasi oksigen  dilakukan  secara manual atau  menggunakan pulse oximeter BerryMed yang  terhubung ke browser melalui  Internet melalui Bluetooth  .





Tangkapan layar aplikasi eksternal yang berjalan di browser desktop.
Tangkapan layar aplikasi eksternal yang berjalan di browser desktop.

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





:





  •  Node.js npm





  • BerryMed BM1000C





  • AWS.      AWS





Diagram tingkat tinggi dari aplikasi monitor oksigen lengkap.
.

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





Diagram yang menunjukkan cara kerja alur kerja otorisasi 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 di file 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
          
          



    :





    Anda akan melihat keluaran seperti ini
  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 .





Pemantauan jarak jauh terhadap tanda-tanda vital pasien lebih relevan dari sebelumnya. Panduan ini mendemonstrasikan kesehatan pribadi dan solusi aplikasi telemedicine. Solusi lengkap mencakup fungsionalitas multi-pengguna dan server tanpa server yang aman dan skalabel. Aplikasi ini menggunakan browser untuk berinteraksi dengan perangkat fisik untuk mengukur saturasi oksigen dan detak jantung. Ini menerbitkan pengukuran ke database menggunakan API tanpa server. Data historis dapat ditampilkan sebagai grafik tren dan juga dapat diakses oleh pengguna lain.








All Articles