swagger: '2.0' info: version: null title: Grdn grdn.handler grdn.routes.impl.member API description: Eden Health Inc. primary backend API service. consumes: - application/json produces: - application/json tags: - name: grdn.routes.impl.member description: Handlers for sponsor roster members paths: /v2/member: delete: summary: delete-member description: Deletes a member record. tags: - grdn.routes.impl.member parameters: [] responses: default: description: Default success response. schema: {} get: summary: get-members description: "Paginated GET handler for rostered patients. Enriches results with isolation reasons and,\n if the sponsor is so entitled, vaccination status. Also adds shared-vaccination-card flag." tags: - grdn.routes.impl.member parameters: - in: query name: day description: 'origin spec: grdn.specs.member/get-members-params' required: false type: string x-allOf: - type: string - {} - in: query name: triage-status description: 'origin spec: grdn.specs.member/get-members-params' required: false enum: - triage-status/never-taken - triage-status/incomplete - triage-status/isolate - triage-status/cleared type: string - in: query name: worksite description: 'origin spec: grdn.specs.member/get-members-params' required: false type: string allowEmptyValue: true - in: query name: page-size description: 'origin spec: grdn.specs.member/get-members-params' required: false type: integer format: int64 minimum: 1 - in: query name: page description: 'origin spec: grdn.specs.member/get-members-params' required: false type: integer format: int64 minimum: 1 - in: query name: sort-by description: 'origin spec: grdn.specs.member/get-members-params' required: false type: string - in: query name: sort-direction description: 'origin spec: grdn.specs.member/get-members-params' required: false enum: - desc - asc type: string - in: query name: filter description: 'origin spec: grdn.specs.member/get-members-params' required: false type: array items: type: object properties: operator: enum: - <= - '>' - '>=' - '!=' - '=' - < type: string field: type: string value: type: string x-anyOf: - type: string - type: number format: double - type: string x-allOf: - type: string - {} required: - operator - field - value responses: default: description: Default success response. schema: type: array items: type: object properties: first-name: type: string x-allOf: - type: string - {} athena-document-id: type: integer x-nullable: true ingested-version: type: string dob: {} triage-status: enum: - triage-status/never-taken - triage-status/incomplete - triage-status/isolate - triage-status/cleared type: string x-nullable: true last-triage-at: x-nullable: true consent-status: type: string vaccination-status: type: string x-nullable: true last-consent-at: x-anyOf: - {} - type: string x-allOf: - type: string - {} id: type: string format: uuid email: type: string x-allOf: - type: string - {} last-name: type: string x-allOf: - type: string - {} updated-at: {} last-test: type: object properties: type: enum: - rapid_molecular - pcr - rapid_antigen - unknown type: string x-nullable: true result: enum: - none - positive - inconclusive - negative - pending type: string x-nullable: true date-time: x-nullable: true verified: type: boolean required: - type - result - date-time - verified x-nullable: true employee-id: type: string worksite: type: string x-nullable: true created-at: {} isolate-reasons: type: string phone: type: string x-nullable: true mrn: type: integer format: int64 minimum: 1 return-to-work-date: type: string x-allOf: - type: string - {} x-anyOf: - type: string x-allOf: - type: string - {} - {} x-nullable: true newest-vaccinated-at: type: string x-allOf: - type: string - {} x-nullable: true required: - id - created-at - email - employee-id - first-name - last-name - mrn - return-to-work-date - updated-at - worksite - consent-status - dob - ingested-version - last-consent-at - last-test - last-triage-at - phone - triage-status title: grdn.specs.member/members-details put: summary: update-member description: Updates a member record with the given patient ID. tags: - grdn.routes.impl.member parameters: - in: body name: grdn.specs.member/update-member-params description: 'origin spec: grdn.specs.member/update-member-params' schema: type: object properties: sponsor-id: type: string format: uuid employee-id: type: string patient-id: type: string format: uuid required: - sponsor-id - employee-id - patient-id title: grdn.specs.member/update-member-params responses: default: description: Default success response. schema: {} /v2/member/{member-id}: get: summary: get-member description: "GET handler for specific member. Returns the member record enriched with the following:\n - patient MRN\n - patient creation time\n - any covid_registry records' creation time & triage status\n - isolate reasons and vaccination status, if the sponsor is so entitled\n - shared-vaccination-card flag" tags: - grdn.routes.impl.member parameters: - in: path name: member-id description: 'origin spec: grdn.specs.member/get-member-params' required: true type: string format: uuid responses: default: description: Default success response. schema: type: object properties: first-name: type: string x-allOf: - type: string - {} ingested-version: type: string dob: {} vaccine-details: type: array items: type: object properties: vaccine-id: type: string manufacturer: enum: - UNK - PFR - MOD - JSN type: string lot-number: type: string vaccinated-at: {} athena-document-id: type: integer x-nullable: true dose: type: integer x-nullable: true required: - vaccine-id - manufacturer - lot-number - vaccinated-at - athena-document-id - dose vaccination-status: type: string x-nullable: true patient-id: type: string format: uuid id: type: string format: uuid email: type: string x-allOf: - type: string - {} last-name: type: string x-allOf: - type: string - {} updated-at: {} covid-registry: type: array items: type: object properties: created-at: x-nullable: true triage-status: enum: - triage-status/never-taken - triage-status/incomplete - triage-status/isolate - triage-status/cleared type: string x-nullable: true isolate-reasons: type: string required: - created-at - triage-status title: grdn.specs.member/covid-registry-entry employee-id: type: string worksite: type: string x-nullable: true created-at: {} isolate-reasons: type: string phone: type: string x-nullable: true personal-phone: type: string x-nullable: true personal-email: type: string required: - ingested-version - id - updated-at - created-at - email - last-name - first-name - phone - worksite - employee-id - patient-id - personal-email - personal-phone - dob - covid-registry - vaccine-details title: grdn.specs.member/get-member-response /v2/member/{member-id}/covid-testing: get: summary: get-covid-testing-results-handler description: Gets a member's COVID testing results. tags: - grdn.routes.impl.member parameters: - in: path name: member-id description: 'origin spec: grdn.specs/get-covid-testing-params' required: true type: string format: uuid responses: default: description: Default success response. schema: {} /v2/member/{member-id}/document/vaccine/{document-id}: get: summary: get-member-vaccine-document-handler description: Gets a members vaccine document/card image. tags: - grdn.routes.impl.member parameters: - in: path name: member-id description: 'origin spec: grdn.specs/get-covid-testing-params' required: true type: string format: uuid - in: path name: document-id description: 'origin spec: grdn.specs/get-covid-testing-params' required: null responses: default: description: Default success response. schema: {} /v2/sponsor/{sponsor-id}/members: get: summary: get-sponsor-members description: GET handler for use by Dataz to retrieve a sponsor's members. tags: - grdn.routes.impl.member parameters: - in: path name: sponsor-id description: 'origin spec: grdn.specs.member/get-sponsor-members-params' required: true type: string format: uuid - in: query name: day description: 'origin spec: grdn.specs.member/get-sponsor-members-params' required: false type: string x-allOf: - type: string - {} responses: default: description: Default success response. schema: type: array items: type: object properties: first-name: type: string x-allOf: - type: string - {} athena-document-id: type: integer x-nullable: true ingested-version: type: string dob: {} triage-status: enum: - triage-status/never-taken - triage-status/incomplete - triage-status/isolate - triage-status/cleared type: string x-nullable: true last-triage-at: x-nullable: true consent-status: type: string vaccination-status: type: string x-nullable: true last-consent-at: x-anyOf: - {} - type: string x-allOf: - type: string - {} id: type: string format: uuid email: type: string x-allOf: - type: string - {} last-name: type: string x-allOf: - type: string - {} updated-at: {} last-test: type: object properties: type: enum: - rapid_molecular - pcr - rapid_antigen - unknown type: string x-nullable: true result: enum: - none - positive - inconclusive - negative - pending type: string x-nullable: true date-time: x-nullable: true verified: type: boolean required: - type - result - date-time - verified x-nullable: true employee-id: type: string worksite: type: string x-nullable: true created-at: {} isolate-reasons: type: string phone: type: string x-nullable: true mrn: type: integer format: int64 minimum: 1 return-to-work-date: type: string x-allOf: - type: string - {} x-anyOf: - type: string x-allOf: - type: string - {} - {} x-nullable: true newest-vaccinated-at: type: string x-allOf: - type: string - {} x-nullable: true required: - id - created-at - email - employee-id - first-name - last-name - mrn - return-to-work-date - updated-at - worksite - consent-status - dob - ingested-version - last-consent-at - last-test - last-triage-at - phone - triage-status title: grdn.specs.member/members-details /v2/unconsented: get: summary: get-unconsented description: GET handler tags: - grdn.routes.impl.member parameters: [] responses: default: description: Default success response. schema: type: array items: type: object properties: first-name: type: string x-allOf: - type: string - {} dob: {} id: type: string format: uuid email: type: string x-allOf: - type: string - {} last-name: type: string x-allOf: - type: string - {} updated-at: {} employee-id: type: string worksite: type: string x-nullable: true created-at: {} phone: type: string x-nullable: true required: - updated-at - email - last-name - first-name - worksite - phone - dob - id - employee-id - created-at title: grdn.specs.member/unconsented-member