Medtech ALEX® Implementation Guide
0.0.1 - draft International flag

Medtech ALEX® Implementation Guide - Local Development build (v0.0.1) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

: Medtech ALEX v1.0 Capability Statement - XML Representation

Draft as of 2020-04-01

Raw xml | Download


<CapabilityStatement xmlns="http://hl7.org/fhir">
  <id value="alexV1-0"/>
  <text>
    <status value="additional"/>
    <div xmlns="http://www.w3.org/1999/xhtml">Medtech ALEX platform capabilities</div>
  </text>
  <url value="https://fhir.medtechglobal.com/CapabilityStatement/alexV1-0"/>
  <version value="0.0.1"/>
  <name value="MedtechCapabilityStatement"/>
  <title value="Capability Statement describing Medtech ALEX FHIR APIs"/>
  <status value="draft"/>
  <date value="2020-04-01"/>
  <publisher value="Medtech Global"/>
  <contact>
    <name value="Medtech Global"/>
    <telecom>
      <system value="url"/>
      <value value="https://medtechglobal.com"/>
    </telecom>
    <telecom>
      <system value="email"/>
      <value value="support@medtechglobal.com"/>
    </telecom>
  </contact>
  <contact>
    <name value="Medtech Support"/>
    <telecom>
      <system value="email"/>
      <value value="support@medtechglobal.com"/>
      <use value="work"/>
    </telecom>
  </contact>
  <description
               value="This is the computable resource that describes the FHIR compliant RESTful endpoint exposed by the ALEX infrastructure

Note that all API interactions will be routed to a single Practice Management System as ALEX is effectively
a facade layer in front of each PMS - ie it is not an aggregator accross different PMS systems. This means that if
there is data about a single patient in different PMS's then a call will be required to each one to retrieve all
the data (assuming the client has the permission to do so). It is the responsibility of the client to perform any aggregation and de-duplication.

It is important that clients making API calls examine the resource type of all resources returned by a query - in particular
the ALEX framework will add OperationOutcome resources in some calls - for example when a search returns no resources,
ALEX will add an OperationOutcome resource to the Bundle to be explicit that there were no matching resources. (All queries
will return a bundle - even if there were no matching resources).

Refer to the spec for details on using the [API](http://hl7.org/fhir/http.html) and 
[search](http://hl7.org/fhir/search.html), though note that this API supports only a subset of the defined queries."/>
  <jurisdiction>
    <coding>
      <system value="http://unstats.un.org/unsd/methods/m49/m49.htm"/>
      <code value="001"/>
      <display value="World"/>
    </coding>
  </jurisdiction>
  <kind value="instance"/>
  <implementation>
    <description value="The ALEX endpoint"/>
    <url value="https://alexapi.medtechglobal.com/FHIR"/>
  </implementation>
  <fhirVersion value="4.0.1"/>
  <format value="json"/>
  <format value="xml"/>
  <rest>
    <mode value="server"/>
    <resource>
      <type value="Patient"/>
      <documentation
                     value="The [Patient](http://hl7.org/fhir/patient.html) resource represents patient demographics.

"/>
      <interaction>
        <code value="read"/>
        <documentation value="Used to retrieve a Patient resource by Id."/>
      </interaction>
      <searchParam>
        <name value="name"/>
        <type value="string"/>
      </searchParam>
      <searchParam>
        <name value="family"/>
        <type value="string"/>
        <documentation value="Not case sensitive"/>
      </searchParam>
      <searchParam>
        <name value="birthDate"/>
        <type value="string"/>
        <documentation value="Not case sensitive"/>
      </searchParam>
      <searchParam>
        <name value="identifier"/>
        <type value="token"/>
        <documentation
                       value="If the system is not supplied, then the NHI is assumed"/>
      </searchParam>
      <operation>
        <name value="PatientSummary"/>
        <definition
                    value="https://fhir.medtechglobal.com/OperationDefinition/MedtechIps"/>
        <documentation
                       value="Returns the IPS document for the patient. Only supported as a parameter against patient, using the NHI
as the query parameter - eg

[host]/Patient/$summary?identifier=https://standards.digital.health.nz/ns/nhi-id|WER4568

The system value should be included, though the NHI will be assumed if it is absent.
"/>
      </operation>
    </resource>
    <resource>
      <type value="Condition"/>
      <documentation
                     value="
The [Condition](http://hl7.org/fhir/condition.html) resource is used to represent patient problems
"/>
      <interaction>
        <code value="read"/>
        <documentation value="
how to do 'since'"/>
      </interaction>
      <searchParam>
        <name value="patient"/>
        <type value="reference"/>
        <documentation
                       value="The API supports a chained query on the patient identifier (NHI) 
This has the syntax:
[host]/Condition?patient.identifier={system|value}

If the system is absent, the NHI is assumed

There is also support for a chained query on patient id with the syntax:
[host]/Condition?patient._id = {id} where {id} is the patients id


"/>
      </searchParam>
      <searchParam>
        <name value="clinical-status"/>
        <type value="token"/>
        <documentation
                       value="The clinical status of the Condition. Only 'active' or 'inactive' values are supported"/>
      </searchParam>
      <searchParam>
        <name value="long-term-condition"/>
        <definition
                    value="http://hl7.org.nz/fhir/SearchParameter/long-term-condition"/>
        <type value="token"/>
        <documentation
                       value="Whether the Condition has been marked by the Practitioner as a long term one. This is indicated
in the resource as an extension."/>
      </searchParam>
    </resource>
    <resource>
      <type value="MedicationRequest"/>
      <documentation
                     value="These are the FHIR representation of prescriptions in medTech
"/>
      <interaction>
        <code value="read"/>
      </interaction>
      <interaction>
        <code value="search-type"/>
      </interaction>
      <searchParam>
        <name value="patient"/>
        <type value="reference"/>
        <documentation
                       value="The API supports a chained query on the patient identifier (NHI) 
This has the syntax:
[host]/MedicationRequest?patient.identifier={system|value}

If the system is absent, the NHI is assumed

There is also support for a chained query on patient id with the syntax:
[host]/MedicationRequest?patient._id = {id} where {id} is the patients id
"/>
      </searchParam>
      <searchParam>
        <name value="_security"/>
        <type value="token"/>
        <documentation
                       value="By default, MedicationRequest resources marked as confidential will not be retuned in a query. This parameter allows a user to specify that they want the confidential records. There are security and provacy constraints that must be met as well.
"/>
      </searchParam>
      <searchParam>
        <name value="status"/>
        <type value="token"/>
        <documentation
                       value="By default, prescriptions that are not active will not be returned. This search parameter allows for non-active prescriptions to be returned - specifically through the :not modifier
"/>
      </searchParam>
      <searchParam>
        <name value="long-term-medication"/>
        <definition
                    value="http://hl7.org.nz/fhir/hpi/SearchParameter/long-term-medication"/>
        <type value="token"/>
        <documentation
                       value="This is a search for MedicationRequests that have the 'long-term-medication' extension set to true. It
is defined by a custom search parameter
"/>
      </searchParam>
    </resource>
    <resource>
      <type value="Observation"/>
      <documentation
                     value="Observations are used in 2 main ways: as the details for lab results (such as a haemoglobin result)
and for screening data.
"/>
      <interaction>
        <code value="read"/>
      </interaction>
      <interaction>
        <code value="search-type"/>
      </interaction>
      <searchParam>
        <name value="patient"/>
        <type value="reference"/>
        <documentation
                       value="The API supports a chained query on the patient identifier (NHI) 
This has the syntax:
[host]/Condition?patient.identifier={system|value}

If the system is absent, the NHI is assumed

There is also support for a chained query on patient id with the syntax:
[host]/Observation?patient._id = {id} where {id} is the patients id

A query on the Observation identifier is NOT supported"/>
      </searchParam>
      <searchParam>
        <name value="date"/>
        <type value="date"/>
        <documentation
                       value="The API also supports searching by date range - ge (Greater than or equal to)
and le (less than or equal to)"/>
      </searchParam>
    </resource>
    <resource>
      <type value="Encounter"/>
      <interaction>
        <code value="read"/>
      </interaction>
      <interaction>
        <code value="search-type"/>
      </interaction>
      <searchParam>
        <name value="patient"/>
        <type value="reference"/>
        <documentation
                       value="The API supports a chained query on the patient identifier (NHI) 
This has the syntax:
[host]/Encounter?patient.identifier={system|value}

If the system is absent, the NHI is assumed

There is also support for a chained query on patient id with the syntax:
[host]/Encounter?patient._id = {id} where {id} is the patients id"/>
      </searchParam>
      <searchParam>
        <name value="date"/>
        <type value="date"/>
        <documentation
                       value="The API also supports searching by date range - ge (Greater than or equal to)
and le (less than or equal to)"/>
      </searchParam>
    </resource>
    <resource>
      <type value="Immunization"/>
      <interaction>
        <code value="read"/>
      </interaction>
      <interaction>
        <code value="search-type"/>
      </interaction>
      <searchParam>
        <name value="patient"/>
        <type value="token"/>
        <documentation
                       value="The API supports a chained query on the patient identifier (NHI) 
This has the syntax:
[host]/Immunization?patient.identifier={system|value}
If the system is absent, the NHI is assumed

There is also support for a chained query on patient id with the syntax:
[host]/Immunization?patient._id = {id} where {id} is the patients id
"/>
      </searchParam>
    </resource>
    <resource>
      <type value="DiagnosticReport"/>
      <documentation
                     value="The search queries support the _include value of 'result' to allow the Observation resources to be returned in the same
call"/>
      <interaction>
        <code value="read"/>
      </interaction>
      <interaction>
        <code value="search-type"/>
      </interaction>
      <searchInclude value="result"/>
      <searchParam>
        <name value="patient"/>
        <type value="reference"/>
        <documentation
                       value="The API supports a chained query on the patient identifier (NHI) 
This has the syntax:
[host]/DiagnosticReport?patient.identifier={system|value}

If the system is absent, the NHI is assumed
There is also support for a chained query on patient id with the syntax:
[host]/DiagnosticReport?patient._id = {id} where {id} is the patients id"/>
      </searchParam>
      <searchParam>
        <name value="date"/>
        <type value="date"/>
        <documentation
                       value="The API also supports searching by date range - ge (Greater than or equal to)
and le (less than or equal to)"/>
      </searchParam>
    </resource>
    <resource>
      <type value="AllergyIntolerance"/>
      <interaction>
        <code value="read"/>
      </interaction>
      <interaction>
        <code value="search-type"/>
      </interaction>
      <searchParam>
        <name value="patient"/>
        <type value="reference"/>
        <documentation
                       value="The API supports a chained query on the patient identifier (NHI) 
This has the syntax:
[host]/AllergyIntolerance?patient.identifier={system|value}

If the system is absent, the NHI is assumed
There is also support for a chained query on patient id with the syntax:
[host]/AllergyIntolerance?patient._id = {id} where {id} is the patients id"/>
      </searchParam>
      <searchParam>
        <name value="clinical-status"/>
        <type value="token"/>
        <documentation
                       value="The clinical status of the Condition. Only 'active' or 'inactive' values are supported"/>
      </searchParam>
    </resource>
    <resource>
      <type value="Schedule"/>
      <documentation
                     value="Represents a schedule of appointment slots (eg the slots for a morning session).
This endpoint may noyt be supported"/>
      <interaction>
        <code value="search-type"/>
      </interaction>
    </resource>
    <resource>
      <type value="Slot"/>
      <documentation
                     value="Represents a single possible appointment slot that is available for booking.
"/>
      <interaction>
        <code value="search-type"/>
      </interaction>
      <searchParam>
        <name value="schedule"/>
        <type value="reference"/>
        <documentation
                       value="Used to allow the practitioner to be specified in the query using a chained request:

[host]/Slot?schedule.practitioner.identifer = {}"/>
      </searchParam>
      <searchParam>
        <name value="start"/>
        <type value="token"/>
        <documentation
                       value="Allows the user to specify the date for which available slots are to be returned. A range can be
specified using the greater than / less than modifiers"/>
      </searchParam>
      <searchParam>
        <name value="status"/>
        <type value="token"/>
        <documentation
                       value="Allows the user to specify the status of the slot to be specified in the query. Generally this will 
be set to 'free' to return only available slots."/>
      </searchParam>
    </resource>
    <resource>
      <type value="Appointment"/>
      <documentation
                     value="Represents an appointment for a Patient with a Practitioner."/>
      <interaction>
        <code value="search-type"/>
        <documentation
                       value="Allows appointments to be queried. Note that the are security / privacy constraints that will
govern which appointments can be returned to which client."/>
      </interaction>
      <interaction>
        <code value="create"/>
        <documentation
                       value="Allows a new appointment to be created. The server may choose not to allow the Appointment to be
made - for example if the slot is no longer available."/>
      </interaction>
      <interaction>
        <code value="delete"/>
        <documentation
                       value="Allows an existing appointment to be removed. The Appointment id must be known, so a client will generally
need to search for appointments for a patient to get the id before deleting.

There will be security mechanisms to ensure that deletion is controlled."/>
      </interaction>
      <searchParam>
        <name value="patient"/>
        <type value="reference"/>
        <documentation
                       value="The API supports a chained query on the patient identifier (NHI) 
This has the syntax:
[host]/Appointment?patient.identifier={system|value}

If the system is absent, the NHI is assumed
There is also support for a chained query on patient id with the syntax:
[host]/Appointment?patient._id = {id} where {id} is the patients id"/>
      </searchParam>
      <searchParam>
        <name value="date"/>
        <type value="date"/>
        <documentation
                       value="Return all appointments over a date range (using ge / le modifiers). The patient must also be included."/>
      </searchParam>
    </resource>
    <resource>
      <type value="DocumentReference"/>
      <documentation
                     value="Used to represent clinical notes and external documents such as Discharge Summaries. For a clincial note, the note will be 
in the content.attachment.data element. For external files the url will be a reference to a Binary endpoint from where the
document can be retrieved."/>
      <interaction>
        <code value="read"/>
      </interaction>
      <interaction>
        <code value="search-type"/>
      </interaction>
      <searchParam>
        <name value="patient"/>
        <type value="reference"/>
        <documentation
                       value="The API supports a chained query on the patient identifier (NHI) 
This has the syntax:
[host]/DocumentReference?patient.identifier={system|value}

If the system is absent, the NHI is assumed

There is also support for a chained query on patient id with the syntax:
[host]/Appointment?patient._id = {id} where {id} is the patients id"/>
      </searchParam>
      <searchParam>
        <name value="_security"/>
        <type value="token"/>
        <documentation
                       value="By default, DocumentReference resources marked as confidential will not be retuned in a query. This parameter allows a user to specify that they want the confidential records. There are security and privacy constraints that must be met as well.
"/>
      </searchParam>
    </resource>
    <resource>
      <type value="Binary"/>
      <documentation
                     value="Used to return documents such as PDF files. Generally in response to a url contained in a DocumentReference
that refers to a discharge summary or other external document."/>
      <interaction>
        <code value="read"/>
      </interaction>
    </resource>
    <resource>
      <type value="Practitioner"/>
      <supportedProfile
                        value="http://hl7.org.nz/healthalliance/medTechPractitioner"/>
      <documentation value="Practitioner query
"/>
      <interaction>
        <code value="read"/>
        <documentation
                       value="Used to retrieve a Practitioner resource by Id."/>
      </interaction>
      <interaction>
        <code value="search-type"/>
      </interaction>
      <searchParam>
        <name value="name"/>
        <type value="string"/>
        <documentation value="Not case sensitive"/>
      </searchParam>
      <searchParam>
        <name value="identifier"/>
        <type value="token"/>
        <documentation value="Will only return active identifiers"/>
      </searchParam>
      <searchParam>
        <name value="family"/>
        <type value="string"/>
      </searchParam>
    </resource>
  </rest>
</CapabilityStatement>