alexV1-0
type: CapabilityStatement
node role: treeRoot
id:
  v: alexV1-0
text:
  status:
    v: additional
  div: Medtech ALEX platform capabilities
url:
  v: https://fhir.medtechglobal.com/CapabilityStatement/alexV1-0
version:
  v: 0.0.1
name:
  v: MedtechCapabilityStatement
title:
  v: Capability Statement describing Medtech ALEX FHIR APIs
status:
  v: draft
date:
  v: 2020-04-01
publisher:
  v: Medtech Global
contact:
  name:
    v: Medtech Global
  telecom:
    system:
      v: url
    value:
      v: https://medtechglobal.com
  telecom:
    system:
      v: email
contact:
  name:
    v: Medtech Support
  telecom:
    system:
      v: email
    use:
      v: work
description:
  v: 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:
      v: http://unstats.un.org/unsd/methods/m49/m49.htm
    code:
      v: 001
    display:
      v: World
kind:
  v: instance
implementation:
  description:
    v: The ALEX endpoint
  url:
    v: https://alexapi.medtechglobal.com/FHIR
fhir version:
  v: 4.0.1
format:
  v: json
format:
  v: xml
rest:
  mode:
    v: server
  resource:
    type:
      v: Patient
    documentation:
      v: The [Patient](http://hl7.org/fhir/patient.html) resource represents patient demographics.
    interaction:
      code:
        v: read
      documentation:
        v: Used to retrieve a Patient resource by Id.
    search param:
      name:
        v: name
      type:
        v: string
    search param:
      name:
        v: family
      type:
        v: string
      documentation:
        v: Not case sensitive
    search param:
      name:
        v: birthDate
      type:
        v: string
      documentation:
        v: Not case sensitive
    search param:
      name:
        v: identifier
      type:
        v: token
      documentation:
        v: If the system is not supplied, then the NHI is assumed
    operation:
      name:
        v: PatientSummary
      definition:
        v: https://fhir.medtechglobal.com/OperationDefinition/MedtechIps
        link: https://fhir.medtechglobal.com/OperationDefinition/MedtechIps
      documentation:
        v: 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.
  resource:
    type:
      v: Condition
    documentation:
      v: The [Condition](http://hl7.org/fhir/condition.html) resource is used to represent patient problems
    interaction:
      code:
        v: read
      documentation:
        v: how to do 'since'
    search param:
      name:
        v: patient
      type:
        v: reference
      documentation:
        v: 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
    search param:
      name:
        v: clinical-status
      type:
        v: token
      documentation:
        v: The clinical status of the Condition. Only 'active' or 'inactive' values are supported
    search param:
      name:
        v: long-term-condition
      definition:
        v: http://hl7.org.nz/fhir/SearchParameter/long-term-condition
        link: http://hl7.org.nz/fhir/SearchParameter/long-term-condition
      type:
        v: token
      documentation:
        v: Whether the Condition has been marked by the Practitioner as a long term one. This is indicated in the resource as an extension.
  resource:
    type:
      v: MedicationRequest
    documentation:
      v: These are the FHIR representation of prescriptions in medTech
    interaction:
      code:
        v: read
    interaction:
      code:
        v: search-type
    search param:
      name:
        v: patient
      type:
        v: reference
      documentation:
        v: 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
    search param:
      name:
        v: _security
      type:
        v: token
      documentation:
        v: 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.
    search param:
      name:
        v: status
      type:
        v: token
      documentation:
        v: 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
    search param:
      name:
        v: long-term-medication
      definition:
        v: http://hl7.org.nz/fhir/hpi/SearchParameter/long-term-medication
        link: http://hl7.org.nz/fhir/hpi/SearchParameter/long-term-medication
      type:
        v: token
      documentation:
        v: This is a search for MedicationRequests that have the 'long-term-medication' extension set to true. It is defined by a custom search parameter
  resource:
    type:
      v: Observation
    documentation:
      v: Observations are used in 2 main ways: as the details for lab results (such as a haemoglobin result) and for screening data.
    interaction:
      code:
        v: read
    interaction:
      code:
        v: search-type
    search param:
      name:
        v: patient
      type:
        v: reference

v: 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

name:
  v: date
type:
  v: date
documentation:
  v: The API also supports searching by date range - ge (Greater than or equal to) and le (less than or equal to)

type:
  v: Encounter
interaction:
  code:
    v: read
interaction:
  code:
    v: search-type
search param:
  name:
    v: patient
  type:
    v: reference
  documentation:
    v: 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
search param:
  name:
    v: date
  type:
    v: date
  documentation:
    v: The API also supports searching by date range - ge (Greater than or equal to) and le (less than or equal to)

type:
  v: Immunization
interaction:
  code:
    v: read
interaction:
  code:
    v: search-type
search param:
  name:
    v: patient
  type:
    v: token
  documentation:
    v: 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

type:
  v: DiagnosticReport
documentation:
  v: The search queries support the _include value of 'result' to allow the Observation resources to be returned in the same call
interaction:
  code:
    v: read
interaction:
  code:
    v: search-type
search include:
  v: result
search param:
  name:
    v: patient
  type:
    v: reference
  documentation:
    v: 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
search param:
  name:
    v: date
  type:
    v: date
  documentation:
    v: The API also supports searching by date range - ge (Greater than or equal to) and le (less than or equal to)

type:
  v: AllergyIntolerance
interaction:
  code:
    v: read
interaction:
  code:
    v: search-type
search param:
  name:
    v: patient
  type:
    v: reference
  documentation:
    v: 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
search param:
  name:
    v: clinical-status
  type:
    v: token
  documentation:
    v: The clinical status of the Condition. Only 'active' or 'inactive' values are supported

type:
  v: Schedule
documentation:
  v: Represents a schedule of appointment slots (eg the slots for a morning session). This endpoint may noyt be supported
interaction:
  code:
    v: search-type

type:
  v: Slot
documentation:
  v: Represents a single possible appointment slot that is available for booking.
interaction:
  code:
    v: search-type
search param:
  name:
    v: schedule
  type:
    v: reference
  documentation:
    v: Used to allow the practitioner to be specified in the query using a chained request: [host]/Slot?schedule.practitioner.identifer = {}
search param:
  name:
    v: start
  type:
    v: token
  documentation:
    v: 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
search param:
  name:
    v: status
  type:
    v: token
  documentation:
    v: 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.

type:
  v: Appointment
documentation:
  v: Represents an appointment for a Patient with a Practitioner.
interaction:
  code:
    v: search-type
  documentation:
    v: Allows appointments to be queried. Note that the are security / privacy constraints that will govern which appointments can be returned to which client.
interaction:
  code:
    v: create
  documentation:
    v: 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:
  code:
    v: delete
  documentation:
    v: 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.
search param:
  name:
    v: patient
  type:
    v: reference
  documentation:
    v: 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
search param:
  name:
    v: date
  type:
    v: date
  documentation:
    v: Return all appointments over a date range (using ge / le modifiers). The patient must also be included.

type:
  v: DocumentReference
documentation:
  v: 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:
    v: read
interaction:
  code:
    v: search-type
search param:
  name:
    v: patient
  type:
    v: reference
  documentation:
    v: 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
search param:
  name:
    v: _security
  type:
    v: token
  documentation:
    v: 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.

type:
  v: Binary
documentation:
  v: 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:
    v: read

type:
  v: Practitioner
supported profile:
  v: http://hl7.org.nz/healthalliance/medTechPractitioner
  link: http://hl7.org.nz/healthalliance/medTechPractitioner
documentation:
  v: Practitioner query
interaction:
  code:
    v: read
  documentation:
    v: Used to retrieve a Practitioner resource by Id.
interaction:
  code:
    v: search-type
search param:
  name:
    v: name
  type:
    v: string
  documentation:
    v: Not case sensitive
search param:
  name:
    v: identifier
  type:
    v: token
  documentation:
    v: Will only return active identifiers
search param:
  name:
    v: family
  type:
    v: string