Skip to main content

Patients

Get a single patient​

Retrieves a patient's basic information and health profile.

GET /patients/:patientId

URL Parameters​

ParameterDescription
patientIdThe patient's record ID
curl "https://partner-staging.i-screen.com.au/v1/patients/610ad2a60ae7ef00115c0aa3" \
-H "Authorization: Bearer f3ee05b1e3d140a3b17456fb69d28cd9-5f6a46513aa48d0bf80a04c7d52c9805633070a7803d3bd4"

Response

{
"_id": "610ad2a60ae7ef00115c0aa3",
"profile": {
"firstName": "Jane",
"lastName": "Doe",
"phone": "0412 345 678",
"gender": "F",
"dob": "31/12/2000",
"address": {
"line1": "7 Example St",
"city": "Brisbane City",
"state": "QLD",
"country": "Australia",
"zip": "4006"
}
},
"allowIscreenPathologyFormNotification": true,
"allowIscreenResultsNotification": true,
"status": "active",
"email": "jane.doe@example.com",
"umrn": "90020709",
"createdAt": "2021-08-04T17:47:18.840Z",
"updatedAt": "2021-08-04T17:47:18.840Z"
}

Get multiple patients​

Retrieves multiple patients under the current practitioner.

GET /patients

Query Parameters​

ParameterRequiredDefaultDescription
skipNo0Number of records to skip
limitNo10Max records to retrieve (max: 100)
umrnNo-Filter by UMRN
emailNo-Filter by patient email (URL-encoded)
curl "https://partner-staging.i-screen.com.au/v1/patients?skip=0&limit=10" \
-H "Authorization: Bearer f3ee05b1e3d140a3b17456fb69d28cd9-5f6a46513aa48d0bf80a04c7d52c9805633070a7803d3bd4"

Response

{
"total": 7,
"limit": 10,
"skip": 0,
"data": [
{
"_id": "5ee084aa24f8a70010e682a2",
"email": "jane.doe@example.com",
"umrn": "90010653",
"updatedAt": "2020-06-10T06:58:50.263Z",
"createdAt": "2020-06-10T06:58:50.263Z",
"status": "active",
"profile": {
"firstName": "Jane",
"lastName": "Doe",
"gender": "F",
"phone": "0412345678",
"dob": "13/06/1990"
}
}
]
}

Create a new patient​

Creates a new patient under the current practitioner.

POST /patients

Payload​

ParameterRequiredDescription
email stringYesThe patient's email
allowIscreenPathologyFormNotification booleanNoIf true, i-screen sends the patient a request-form/instructions email when a test from a directly purchased order is confirmed. Set to false if the partner handles all patient communications for this flow. This does not affect the invoice payment-link email, which is always sent.
allowIscreenResultsNotification booleanNoIf true, i-screen sends a notification email when results are available. If false, results won't appear on the patient dashboard until explicitly released from the practitioner portal.
profile.firstName stringNoFirst name
profile.lastName stringYesLast name
profile.phone stringYesPhone number. Must start with 0.
profile.gender stringYesGender. Values: M, F, U
profile.dob stringYesDate of birth in dd/MM/yyyy format. Patient must be 18 or older.
profile.address.line1 stringYesAddress line 1
profile.address.line2 stringNoAddress line 2
profile.address.city stringYesCity
profile.address.state stringYesState
profile.address.country stringYesCountry
profile.address.zip stringYesPostcode
healthProfile.basicInfo.height numberNoHeight in cm
healthProfile.basicInfo.weight numberNoWeight in kg
healthProfile.lifeStyle.isSmoker stringNoValues: yes, no
healthProfile.lifeStyle.alcoholUnits stringNoWeekly alcohol units
healthProfile.lifeStyle.diet stringNoValues: healthy, unhealthy, moderate
healthProfile.lifeStyle.exerciseFrequency stringNoExercise frequency
healthProfile.lifeStyle.exerciseDuration stringNoExercise duration
healthProfile.medicalHistory.lastBPCheck dateNoDate in dd/MM/yyyy format
healthProfile.medicalHistory.lastBP stringNoLast blood pressure reading
healthProfile.medicalHistory.pastMedicalHistory stringNoPast medical history
healthProfile.medicalHistory.familyMedicalCond stringNoFamily medical conditions
healthProfile.medicalHistory.medication stringNoCurrent medications
healthProfile.medicalHistory.allergy stringNoKnown allergies
healthProfile.medicalHistory.healthConcern stringNoHealth concerns
healthProfile.womensHealth.menstrualStatus stringNoValues: premenopause, perimenopause, postmenopause
healthProfile.womensHealth.ageOfFirstPeriod stringNoAge of first period
healthProfile.womensHealth.ageOfLastPeriod stringNoAge of last period
healthProfile.womensHealth.isPeriodRegular stringNoValues: yes, no
healthProfile.womensHealth.menstrualDuration stringNoMenstrual duration
healthProfile.womensHealth.ovulationDuration stringNoOvulation duration
healthProfile.womensHealth.hasHadMiscarriage stringNoValues: yes, no
healthProfile.womensHealth.pcoSyndrome stringNoValues: yes, no, unsure
healthProfile.womensHealth.moreInfo stringNoAdditional women's health info
healthProfile.familyPlanning.inPreOrPostPregnancy stringNoValues: yes, no, recentlyConceived
healthProfile.familyPlanning.conceiveAttemptDuration stringNoDuration of conception attempts
healthProfile.familyPlanning.hasHadFertilityTest stringNoValues: yes, no
healthProfile.familyPlanning.moreInfo stringNoAdditional family planning info
healthProfile.howDidYouHearAboutUs stringNoHow the patient heard about i-screen
curl -X POST https://partner-staging.i-screen.com.au/v1/patients \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer f3ee05b1e3d140a3b17456fb69d28cd9-5f6a46513aa48d0bf80a04c7d52c9805633070a7803d3bd4"

Payload

{
"email": "jenny.doe@gmail.com",
"allowIscreenPathologyFormNotification": false,
"allowIscreenResultsNotification": false,
"profile": {
"firstName": "Jenny",
"lastName": "Doe",
"phone": "0412123123",
"gender": "F",
"dob": "02/12/2000",
"address": {
"line1": "1/2 Lang Street",
"city": "Brunswick",
"state": "VIC",
"country": "Australia",
"zip": "3000"
}
},
"healthProfile": {
"basicInfo": {
"height": 170,
"weight": 75.5
},
"lifeStyle": {
"isSmoker": "no",
"alcoholUnits": "2",
"diet": "healthy",
"exerciseFrequency": "3x per week",
"exerciseDuration": "45 mins"
}
}
}

Response

{
"_id": "610ad2a60ae7ef00115c0aa3",
"email": "jenny.doe@gmail.com",
"umrn": "90020710",
"status": "active",
"profile": {
"firstName": "Jenny",
"lastName": "Doe",
"phone": "0412123123",
"gender": "F",
"dob": "02/12/2000",
"address": {
"line1": "1/2 Lang Street",
"city": "Brunswick",
"state": "VIC",
"country": "Australia",
"zip": "3000"
}
},
"createdAt": "2021-08-04T17:47:18.840Z",
"updatedAt": "2021-08-04T17:47:18.840Z"
}

Existing account​

Email is the unique identifier for an i-screen account. If the email already belongs to an account, this endpoint does not create a duplicate. Instead it returns a 409 Conflict:

reasonMeaning
PATIENT_ALREADY_LINKEDThe account already exists and is already linked to your practitioner. The response includes patientId, so you can use the existing patient.
PATIENT_EXISTS_CONSENT_REQUIREDThe account exists but belongs to a different practitioner, or has never been linked to one. patientId is withheld until the patient consents to the connection.

For PATIENT_EXISTS_CONSENT_REQUIRED, see Requesting a connection to an existing account below.

{
"name": "Conflict",
"message": "An i-screen account already exists for this email address...",
"code": 409,
"data": {
"reason": "PATIENT_EXISTS_CONSENT_REQUIRED"
}
}

Requesting a connection to an existing account​

If a patient already has an i-screen account (PATIENT_EXISTS_CONSENT_REQUIRED above), you cannot create or patch that patient directly. Instead, request the patient's consent to connect their existing account to your practitioner.

POST /patients/link-requests

Payload​

ParameterRequiredDescription
email stringYesThe existing patient's email

If no account exists​

This endpoint is only for connecting to an account that already exists. If no i-screen account is registered under the given email at all, it returns a 404 Not Found:

{
"name": "NotFound",
"message": "No i-screen account exists for this email address.",
"code": 404,
"className": "not-found",
"errors": {}
}

If you're not sure whether an account exists, Create a new patient first: it creates the account when there isn't one, or tells you a link request is needed (PATIENT_EXISTS_CONSENT_REQUIRED) when there is.

curl -X POST https://partner-staging.i-screen.com.au/v1/patients/link-requests \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer f3ee05b1e3d140a3b17456fb69d28cd9-5f6a46513aa48d0bf80a04c7d52c9805633070a7803d3bd4" \
-d '{ "email": "patient@example.com" }'

Response

{
"id": "610ad2a60ae7ef00115c0aa3",
"patientId": null,
"status": "pending",
"createdAt": "2026-08-01T02:00:00.000Z",
"expiresAt": "2026-08-08T02:00:00.000Z",
"approvedAt": null
}

This sends i-screen's standard connection-request email directly to the patient. We email the patient, not you, since it is their consent to give. The request expires after 7 days if the patient does not respond; you may send a new request once it expires. Only one active request per patient is allowed at a time.

patientId is withheld until the patient approves. Poll or check the request to find out when they have:

GET /patients/link-requests/:linkRequestId

Returns the same shape as the create response above. status is one of:

statusMeaning
pendingSent, awaiting the patient's response
approvedThe patient approved the connection. patientId is now populated
expired7 days passed with no response

GET /patients/link-requests

Lists your practitioner's link requests.

Query ParameterRequiredDefaultDescription
skipNo0Number of records to skip
limitNo10Max records to retrieve (max: 100)
patientIdNo-Filter to requests for a specific patient
statusNo-Filter by pending, approved, or expired

Response

{
"total": 3,
"limit": 10,
"skip": 0,
"data": [
{
"id": "610ad2a60ae7ef00115c0aa3",
"patientId": null,
"status": "pending",
"createdAt": "2026-08-01T02:00:00.000Z",
"expiresAt": "2026-08-08T02:00:00.000Z",
"approvedAt": null
}
]
}

What happens when a patient approves​

Approving a connection is more than a permission flag. When the patient accepts, i-screen also:

  • Updates the patient's notification preferences: allowIscreenPathologyFormNotification and allowIscreenResultsNotification are both set to true for your practitioner going forward, regardless of what they were set to previously.
  • Unhides the patient's prior test history from your practitioner. Any tests the patient took before this connection, with any practitioner, become visible to you once they approve. This is not limited to tests placed through your practitioner or through the API.

If your integration relies on only seeing tests you placed, filter on your own order/test references rather than assuming a patient's full history reflects only your activity.

note

There is currently no reject action. If a patient does not want to connect, the request simply expires after 7 days with no action needed from them.


Patch a patient​

Updates an existing patient's details.

PATCH /patients/:patientId

URL Parameters​

ParameterDescription
patientIdThe patient's record ID

Accepts the same fields as Create a new patient, all optional.

curl -X PATCH https://partner-staging.i-screen.com.au/v1/patients/610ad2a60ae7ef00115c0aa3 \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer f3ee05b1e3d140a3b17456fb69d28cd9-5f6a46513aa48d0bf80a04c7d52c9805633070a7803d3bd4"

Payload

{
"profile": {
"phone": "0499999999"
},
"healthProfile": {
"basicInfo": {
"weight": 72
}
}
}