Bowhead Navigator API
    Bowhead Navigator API
    • Overview
    • Find guidelines
      POST
    • Find potential clinical trials
      POST
    • Callback url
      POST

    Overview

    This collection includes the Find potential clinical trials service, which provides a way to find potential Clinical Trials for a set of patients based on the information submitted for each patient and the acceptance criteria of the Clinical Trial.

    Protocol#

    Bowhead Navigator API uses FHIR® to facilitate communication and data exchange between systems.
    Once the client sends a POST request to /patient/matches to the Bowhead Navigator API, the Bundle is validated. If there are errors, it responds with an OperationOutcome.
    If successful, it returns a status 200, and the matching process (Match Worker) begins.
    The Match Worker processes the data and uses the CallbackUrl to send the matching results.
    The client receives the response at the CallbackUrl, which is a JSON or XML with the research study matches or an OperationOutcome in case of an error.

    Base Url#

    https://bw.navigator.api
    

    Resource#

    POST /patients/matches
    

    Authentication#

    Authentication for any service within Bowhead API Navigator is done via API key.
    The API key must be added to the authorization header.
    How to generate an API key?

    Headers#

    Content-Type: application/json or application/xml are supported.

    Query Parameters#

    outputFormat: Optional. Specifies the required format for the worker response. Allowed formats are json and xml. The default format is json.

    Body#

    The expected body is a Bundle of type collection. This bundle must adhere to the following structure:
    The main bundle must have an extension of type CallbackUrl.
    Read more about the extension CallbackUrl here.
    Each entry in the main Bundle must be another Bundle of type collection that groups all resources related to a specific patient. The expected resources within the patient's Bundle are: Patient, Condition, Observation.
    The data expected per patient includes: Age, Sex, Stage, Estrogen RS, HER2, ECOG, Progesterone RS.
    Example:
    {
        "resourceType": "Bundle",
        "type": "collection",
        "entry": [
            {
                "resource": {
                    "resourceType": "Bundle",
                    "type": "collection",
                    "entry": [
                        {
                            "fullUrl": "urn:uuid:patient1",
                            "resource": {
                                "resourceType": "Patient",
                                "id": "patient1",
                                "identifier": [
                                    {
                                        "system": "http://example.org/fhir/patient",
                                        "value": "12345"
                                    }
                                ],
                                "name": [
                                    {
                                        "family": "Doe",
                                        "given": [
                                            "John"
                                        ]
                                    }
                                ],
                                "birthDate": "1970-01-01",
                                "gender": "male"
                            }
                        },
                        {
                            "fullUrl": "urn:uuid:obs1",
                            "resource": {
                                "resourceType": "Observation",
                                "id": "obs1",
                                "status": "final",
                                "code": {
                                    "coding": [
                                        {
                                            "system": "http://loinc.org",
                                            "code": "29463-7",
                                            "display": "Body weight"
                                        }
                                    ],
                                    "text": "Body weight"
                                },
                                "subject": {
                                    "reference": "Patient/patient1"
                                },
                                "effectiveDateTime": "2024-06-13T12:00:00Z",
                                "valueQuantity": {
                                    "value": 68,
                                    "unit": "kg",
                                    "system": "http://unitsofmeasure.org",
                                    "code": "kg"
                                }
                            }
                        },
                        {
                            "fullUrl": "urn:uuid:cond1",
                            "resource": {
                                "resourceType": "Condition",
                                "id": "cond1",
                                "code": {
                                    "coding": [
                                        {
                                            "system": "http://snomed.info/sct",
                                            "code": "254637007",
                                            "display": "Malignant tumor of breast"
                                        }
                                    ],
                                    "text": "Breast Cancer"
                                },
                                "subject": {
                                    "reference": "Patient/patient1"
                                },
                                "verificationStatus": {
                                    "coding": [
                                        {
                                            "system": "http://terminology.hl7.org/CodeSystem/condition-ver-status",
                                            "code": "confirmed",
                                            "display": "Confirmed"
                                        }
                                    ]
                                }
                            }
                        }
                    ]
                }
            },
        ],
        "meta": {
            "extension": [
                {
                    "url": "https://bowheadhealth.com/fhir/extensions/callbackurl",
                    "valueUrl": "https://yourapi.com/matches"
                }
            ]
        }
    }
    

    Response#

    In case of success, the service will return a status 200.
    In case of an error, the API responds with an error HTTP status code and an OperationOutcome resource that provides details about the error.

    Error Handling#

    Common HTTP Status codes returned on errors:
    4XX Bad Request / Unprocessable Entity - match could not be processed or failed basic FHIR validation rules
    401 Not Authorized - authorization is required for the interaction that was attempted
    500 - Internal Server Error
    Examples:
    {
      "resourceType": "OperationOutcome",
      "issue": [
        {
          "severity": "error",
          "code": "invalid",
          "details": {
            "text": "Match could not be processed or failed basic FHIR validation rules."
          },
          "diagnostics": "Error in match parameters."
        }
      ]
    }
    
    {
      "resourceType": "OperationOutcome",
      "issue": [
        {
          "severity": "error",
          "code": "forbidden",
          "details": {
            "text": "Authorization is required for the interaction that was attempted."
          },
          "diagnostics": "No authorization token provided."
        }
      ]
    }
    

    Webhook Response#

    In case of success, the worker uses the CallbackUrl provided in the Bundle to send the results via a POST.
    The results are sent in the body of the request. The body has the following structure:
    A list of Result objects.
    Each Result represents a patient's potential match with one or more clinical trials.
    Each Result includes a patient identifier and a list of Match objects.
    Each Match object represents a specific clinical trial and includes a list of inclusion and exclusion criteria, defined as Criterion objects.

    Properties#

    Below is a table describing the properties of the Result, Match, and Criterion objects:

    Result#

    PropertyDescription
    patientIdThe unique identifier for the patient.
    matchesA list of Match objects representing potential matches to clinical trials for the patient.

    Match#

    PropertyDescription
    NCTIdThe unique identifier for the clinical trial (NCT number).
    investigatorFullNameThe full name of the lead investigator for the clinical trial.
    leadSponsorThe lead sponsor of the clinical trial.
    locationA list of locations where the clinical trial is being conducted, each with city, country, facility, geoPoint (latitude and longitude), state, and zip code information.
    criteriasListAn object containing lists of inclusion and exclusion criteria (Criterion objects).
    matchA boolean indicating if the patient matches the clinical trial.
    matchPercentageThe percentage of criteria that the patient meets for the clinical trial.
    phaseThe phase of the clinical trial.
    startStudyTimeThe start date of the clinical trial.
    statusThe current status of the clinical trial (e.g., RECRUITING).
    studyTimeThe estimated completion date of the clinical trial.
    studyTypeThe type of clinical trial (e.g., INTERVENTIONAL).
    summaryA brief summary of the clinical trial.
    titleThe title of the clinical trial.
    urlThe URL to the clinical trial's detailed information page.

    Criterion#

    PropertyDescription
    descriptionA description of the criterion.
    eligibilityIndicates whether the patient's information meets the criterion (true), does not meet the criterion (false), or if there is not enough information to evaluate (null).
    evidenceThe evidence supporting the evaluation of the criterion.
    keyA unique identifier for the criterion within the clinical trial. (Only included in inclusion criteria)

    Response example#

    [
        {
            "patientId": "7539005245812",
            "matches": [
                {
                    "NCTId": "NCT05245812",
                    "investigatorFullName": "Deborah Farr, MD",
                    "leadSponsor": "Deborah Farr, MD",
                    "location": [
                        {
                            "city": "Dallas",
                            "country": "United States",
                            "facility": "UT Southwestern",
                            "geoPoint": {
                                "lat": 32.78306,
                                "lon": -96.80667
                            },
                            "state": "Texas",
                            "zip": "75390"
                        }
                    ],
                    "criteriasList": {
                        "exclusion_criteria": [
                            {
                                "description": "Inability to provide informed consent",
                                "eligibility": null,
                                "evidence": "Eligibility not confirmed due to incomplete data"
                            },
                            {
                                "description": "Pregnant or nursing women",
                                "eligibility": null,
                                "evidence": "Eligibility not confirmed due to incomplete data"
                            }
                        ],
                        "inclusion_criteria": [
                            {
                                "description": "Minimum age 18 Years and Maximum age 80 Years",
                                "eligibility": true,
                                "evidence": "System question: What is the patient's age? - Answer:30",
                                "key": "NCT05245812C0001779"
                            },
                            {
                                "description": "Eastern Cooperative Oncology Group (ECOG) performance status of 0 or 1",
                                "eligibility": true,
                                "evidence": "System question: What is the patient's ECOG Performance Status? - Answer:ECOG1",
                                "key": "NCT05245812C1520224"
                            }
                        ]
                    },
                    "match": true,
                    "matchPercentage": 75,
                    "phase": "NA",
                    "startStudyTime": "2022-03-08",
                    "status": "RECRUITING",
                    "studyTime": "2026-02",
                    "studyType": "INTERVENTIONAL",
                    "summary": "This is a single arm, single-center, prospective clinical trial designed to track the peri, post-operative and oncologic outcomes when utilizing the da-Vinci single port (SP) robotic platform to perform robotic nipple sparing mastectomy (rNSM) and immediate breast reconstruction with tissue expanders/implants and acellular dermal matrix (ADM - Alloderm), for patients with breast cancer as well as those with a high risk for breast cancer.\n\nSafety and feasibility measures will be measured as primary outcome measures. Oncological and patient satisfaction outcome measures will be measured. Our hypothesis is that SPr-NSM is equal to open NSM in terms of safety, feasibility and oncological outcomes with improved patient satisfaction as measured by nipple sensation and patient reported outcomes.",
                    "title": "Safety and Feasibility of Robotic SP Nipple Sparing Mastectomy",
                    "url": "https://www.clinicaltrials.gov/study/NCT05245812"
                }
            ]
        }
    ]
    
    Next
    Find guidelines
    Built with