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
- CPU:
- 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 ID | Description | Severity | Status | Reported by | Assigned to | Activities generated | Remarks |
---|---|---|---|---|---|---|---|
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