Skip to main content
QMSQMS
QMS
  • Welcome to your QMS
  • Quality Manual
  • Procedures
  • Records
  • TF_Legit.Health_Plus
    • Legit.Health Plus TF index
    • Legit.Health Plus STED
    • Legit.Health Plus description and specifications
    • R-TF-001-007 Declaration of conformity
    • GSPR
    • Clinical
    • Design and development
    • Design History File (DHF)
      • Version 1.1.0.0
        • Requirements
        • Test plans
        • Test runs
          • TEST_001 The user receives quantifiable data on the intensity of clinical signs
          • TEST_002 The user receives quantifiable data on the count of clinical signs
          • TEST_003 The user receives quantifiable data on the extent of clinical signs
          • TEST_004 The user receives an interpretative distribution representation of possible ICD categories represented in the pixels of the image
          • TEST_007 If something does not work, the API returns meaningful information about the error
          • TEST_008 Notify the user image modality and if the image does not represent a skin structure
          • TEST_009 Notify the user if the quality of the image is insufficient
          • TEST_010 The user specifies the body site of the skin structure
          • TEST_011 We facilitate the integration of the device into the users' system
          • TEST_012 The user can send requests and get back the output of the device as a response in a secure, efficient and versatile manner
          • TEST_013 The data that users send and receive follows the FHIR healthcare interoperability standard
          • TEST-014 The user authentication feature is functioning correctly
          • TEST_015 Ensure all API communications are conducted over HTTPS
          • TEST_016 Ensure API compliance with Base64 image format and FHIR standard
          • TEST_017 Verification of authorized user registration and body zone specification in device API
          • TEST_018 Ensure API stability and cybersecurity of the medical device
        • Review meetings
        • 🥣 SOUPs
    • IFU and label
    • Post-Market Surveillance
    • Quality control
    • Risk Management
  • Licenses and accreditations
  • External documentation
  • TF_Legit.Health_Plus
  • Design History File (DHF)
  • Version 1.1.0.0
  • Test runs
  • TEST_017 Verification of authorized user registration and body zone specification in device API

TEST_017 Verification of authorized user registration and body zone specification in device API

Test type​

System

Linked activities​

  • MDS-449

Result​

  • Passed
  • Failed

Description​

In this test run, we will focus on two primary verification processes. First, we'll ensure that only authorized users can register for the device API. This involves confirming that the registration process occurs within a non-publicly accessible, restricted environment, preventing unauthorized users from accessing the registration.

Second, we'll verify that requests involving certain scoring systems correctly specify the body zone affected by the skin lesion. This step is crucial to ensure that the scoring systems receive the necessary information to accurately calculate the severity or impact of the skin lesion based on the specified body zone.

Run environment​

Here are the technical specifications of the runtime environment in which the tests were conducted:

  • Operating system: Ubuntu 22.04.3 LTS (Linux kernel version: 5.10.0-051000-generic)
  • Hardware specifications:
    • CPU:
      • Model name: AMD Ryzen Threadripper PRO 5995WX (x86_64)
      • Number of cores: 64
      • Thread(s) per core: 2
    • GPU:
      • CUDA version: 12.0
      • Devices:
        • NVIDIA RTX 6000 (49140 MiB)
        • NVIDIA RTX 6000 (49140 MiB)
    • RAM: 252 GB
    • Storage: 6.5 TB
    • Network:
      • Mean speed: 635 Mbps
      • Mean latency: 5 ms
  • Other relevant software: No particular software was used.

Test case runs​

The following test cases have been executed in this batch:

TEST_017_001​

Outcome​

  • Passed
  • Failed

Expected results​

  • A welcome message along with a menu of options is displayed on the terminal.
  • The program shows a message confirming the successful creation of the new institution and displays the ID assigned to it in the database.
  • Once the user has been successfully registered, the console temporarily displays the username, password, and ID of the user's entry in the database, allowing you to copy and save this information securely.
  • When selecting the option to list users, the console displays a list that includes the details of the user you just registered.
  • The new institution and user you created during the test do not appear in the lists of registered institutions and users.

Actual results​

  • A welcome message along with a menu of options is displayed on the terminal:

  • The program shows a message confirming the successful creation of the new institution and displays the ID assigned to it in the database:

  • Once the user has been successfully registered, the console temporarily displays the username, password, and ID of the user's entry in the database, allowing you to copy and save this information securely:

  • When selecting the option to list users, the console displays a list that includes the details of the user you just registered:

  • The new institution and user you created during the test do not appear in the lists of registered institutions and users:

  • The institution has been successfully deleted.

  • The user has been successfully deleted.

  • Only the original entries appear in the list of institutions.

  • Only the original entries appear in the list of users.

Remarks​

No comments to add. The test was carried out manually without any issues.

TEST_017_002​

Outcome​

  • Passed
  • Failed

Expected results​

  • The API returns a 200 OK status code when the body site is specified in the request, and the response includes a diagnostic report with the results for the selected scoring systems.
  • The API responds with a 422 Unprocessable Entity status code when the body site is missing from requests for scoring systems that require it, preventing the device from generating any preliminary diagnostic report

Actual results​

  • The API returns a 200 OK status code when the body site is specified in the request, and the response includes a diagnostic report with the results for the selected scoring systems:

  • Response body for "Payload 1".

Status code: 200
{
"resourceType": "DiagnosticReport",
"status": "preliminary",
"category": {
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/v2-0074",
"code": "IMG",
"display": "Diagnostic Imaging"
}
],
"text": "Diagnostic Imaging"
},
"code": {
"coding": [
{
"system": "http://loinc.org/",
"code": "100063-7",
"display": "Primary skin concern"
},
{
"system": "http://loinc.org/",
"code": "10206-1",
"display": "Physical findings of Skin Narrative"
}
],
"text": "Skin Condition Analysis"
},
"device": {
"name": "Legit.Health Plus",
"manufacturer": "AI LABS GROUP SL",
"category": {
"system": "http://hl7.org/fhir/device-category",
"code": "software",
"display": "Software"
},
"type": {
"system": "https://www.snomed.org/",
"code": "468878001",
"display": "Dermatology picture archiving and communication system application software"
},
"url": "https://medical-device.legit.health/"
},
"effectiveDateTime": "2024-07-05T17:48:00.258393",
"media": {
"validity": {
"metrics": {
"quality": {
"valid": true,
"score": 87,
"category": "Acceptable"
},
"domain": {
"valid": true,
"score": 100,
"category": "Dermatological"
}
},
"isValid": true
},
"modality": "Clinical"
},
"patientEvolution": {
"apasi": {
"name": "apasi",
"score": {
"text": "score",
"value": 4.0,
"interpretation": "Mild"
},
"items": {
"surface": {
"type": "visual-sign",
"code": {
"text": "surface-area"
},
"component": {
"coverage": 70,
"category": 4
}
},
"erythema": {
"type": "visual-sign",
"code": {
"text": "erythema"
},
"component": {
"intensity": 3,
"intensityRaw": 76
}
},
"desquamation": {
"type": "visual-sign",
"code": {
"text": "desquamation"
},
"component": {
"intensity": 1,
"intensityRaw": 34
}
},
"induration": {
"type": "visual-sign",
"code": {
"text": "induration"
},
"component": {
"intensity": 1,
"intensityRaw": 30
}
}
},
"media": {
"attachments": [
{
"title": "segmentation",
"contentType": "image/jpeg",
"data": "/9j/4AAQSk...",
"height": 527,
"width": 817
}
]
}
},
"ascorad": {
"name": "ascorad",
"score": {
"text": "score",
"value": 46.4,
"interpretation": "Severe"
},
"items": {
"surface": {
"type": "visual-sign",
"code": {
"text": "surface-area"
},
"coverage": 78,
"localCoverage": 7
},
"erythema": {
"type": "visual-sign",
"code": {
"text": "erythema"
},
"intensity": 2,
"intensityRaw": 59
},
"crusting": {
"type": "visual-sign",
"code": {
"text": "crusting"
},
"intensity": 2,
"intensityRaw": 82
},
"swelling": {
"type": "visual-sign",
"code": {
"text": "swelling"
},
"intensity": 2,
"intensityRaw": 56
},
"excoriation": {
"type": "visual-sign",
"code": {
"text": "excoriation"
},
"intensity": 2,
"intensityRaw": 73
},
"lichenification": {
"type": "visual-sign",
"code": {
"text": "lichenification"
},
"intensity": 1,
"intensityRaw": 29
},
"dryness": {
"type": "visual-sign",
"code": {
"text": "dryness"
},
"intensity": 1,
"intensityRaw": 47
},
"itchiness": {
"type": "subjective-symptom",
"code": {
"text": "itchiness"
},
"intensity": 4
},
"sleeplessness": {
"type": "subjective-symptom",
"code": {
"text": "sleeplessness"
},
"intensity": 6
}
},
"media": {
"attachments": [
{
"title": "segmentation",
"contentType": "image/jpeg",
"data": "/9j/4AAQSk...",
"height": 527,
"width": 817
}
]
}
}
},
"analysisDuration": "1.1910 secs"
}
  • Response body for "Payload 2".
Status code: 200
{
"resourceType": "DiagnosticReport",
"status": "preliminary",
"category": {
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/v2-0074",
"code": "IMG",
"display": "Diagnostic Imaging"
}
],
"text": "Diagnostic Imaging"
},
"code": {
"coding": [
{
"system": "http://loinc.org/",
"code": "100063-7",
"display": "Primary skin concern"
},
{
"system": "http://loinc.org/",
"code": "10206-1",
"display": "Physical findings of Skin Narrative"
}
],
"text": "Skin Condition Analysis"
},
"device": {
"name": "Legit.Health Plus",
"manufacturer": "AI LABS GROUP SL",
"category": {
"system": "http://hl7.org/fhir/device-category",
"code": "software",
"display": "Software"
},
"type": {
"system": "https://www.snomed.org/",
"code": "468878001",
"display": "Dermatology picture archiving and communication system application software"
},
"url": "https://medical-device.legit.health/"
},
"effectiveDateTime": "2024-07-05T17:52:08.137212",
"media": {
"validity": {
"metrics": {
"quality": {
"valid": true,
"score": 68,
"category": "Acceptable"
},
"domain": {
"valid": true,
"score": 100,
"category": "Dermatological"
}
},
"isValid": true
},
"modality": "Clinical"
},
"patientEvolution": {
"asalt": {
"name": "asalt",
"score": {
"text": "score",
"value": 0.017448805988343436
},
"items": {
"hairLoss": {
"code": {
"text": "hair-loss"
},
"component": {
"value": 0.017448805988343436
}
},
"hairLossLocal": {
"code": {
"text": "hair-loss-local"
},
"component": {
"value": 0.09693781104635242
}
}
},
"media": {
"attachments": [
{
"title": "segmentation",
"contentType": "image/jpeg",
"data": "/9j/4AAQSk...",
"height": 878,
"width": 803
}
]
}
}
},
"analysisDuration": "0.5810 secs"
}
  • The API responds with a 422 Unprocessable Entity status code when the body site is missing from requests for scoring systems that require it, preventing the device from generating any preliminary diagnostic report:

  • Response body for "Payload 1".

Status code: 422
{
"detail": [
{
"type": "missing",
"loc": [
"body",
"bodySite"
],
"msg": "Field required",
"input": {
"subject": {
"reference": "fake-patient-id"
},
"media": {
"contentType": "image/jpeg",
"data": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA..."
},
"known_condition": {
"conclusion": {
"code": "EA80",
"display": "Atopic dermatitis",
"system_alias": "ICD-11"
}
},
"scoring_systems": [
"apasi",
"ascorad"
],
"questionnaire_response": [
{
"questionnaire": "apasi",
"item": [
{
"code": "surface",
"answer": [
{
"value": 4
}
]
}
]
},
{
"questionnaire": "ascorad",
"item": [
{
"code": "surface",
"answer": [
{
"value": 78
}
]
},
{
"code": "itchiness",
"answer": [
{
"value": 4
}
]
},
{
"code": "sleeplessness",
"answer": [
{
"value": 6
}
]
}
]
}
]
}
}
]
}
  • Response body for "Payload 2".
Status code: 422
{
"detail": [
{
"type": "missing",
"loc": [
"body",
"bodySite"
],
"msg": "Field required",
"input": {
"subject": {
"reference": "fake-patient-id"
},
"media": {
"contentType": "image/jpeg",
"data": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA..."
},
"known_condition": {
"conclusion": {
"code": "ED70",
"display": "Alopecia",
"system_alias": "ICD-11"
}
},
"scoring_systems": [
"asalt"
]
}
}
]
}

Remarks​

No comments to add. The test was carried out manually without any issues.

Summary of results​

  • Total cases: 2
  • Passed: 2
  • Failed: 0
  • Pass rate: 100 %

Defects and issues​

Defect IDDescriptionSeverityStatusReported byAssigned toActivities generatedRemarks

Observations and recommendations​

All planned test cases were executed successfully, with a 100% pass rate. This indicates that the system performed as expected under the defined scenarios.

Additionally, no defects were found during this testing cycle. The absence of defects suggests a high level of system stability and reliability.

Signature meaning

The signatures for the approval process of this document can be found in the verified commits at the repository for the QMS. As a reference, the team members who are expected to participate in this document and their roles in the approval process, as defined in Annex I Responsibility Matrix of the GP-001, are:

  • Tester: JD-017, JD-009, JD-004
  • Approver: JD-005
Previous
TEST_016 Ensure API compliance with Base64 image format and FHIR standard
Next
TEST_018 Ensure API stability and cybersecurity of the medical device
  • Test type
  • Linked activities
  • Result
  • Description
  • Run environment
  • Test case runs
    • TEST_017_001
      • Outcome
      • Expected results
      • Actual results
      • Remarks
    • TEST_017_002
      • Outcome
      • Expected results
      • Actual results
      • Remarks
  • Summary of results
  • Defects and issues
  • Observations and recommendations
All the information contained in this QMS is confidential. The recipient agrees not to transmit or reproduce the information, neither by himself nor by third parties, through whichever means, without obtaining the prior written permission of Legit.Health (AI LABS GROUP S.L.)