Hop til hovedindhold

API

Vena har et eksternt API der kan bruges ved integration af 3. parter. Dette kan eksempelvis være egenbyggede bookingforløb, spørgeskemaer eller 3. parts værktøjer til patient-onboarding.

Det er af sikkerhedsmæsige årsager ikke muligt at trække personhenførbar data ud via API'et.

info

For at få adgang til API'et skal du kontakte vores kundeservice.

Eksempel på integrationsflow

  1. Hent token via /external/v1/auth
  2. Slå patient op via /external/v1/cprLookup
  3. Hvis ikke fundet: opret patient via /external/v1/patients
  4. Upload fil via /external/v1/files
  5. Opret journalnotat via /external/v1/patients/<PATIENT_ID>/journalEntries

Endpoints

Login

Bruges til at hente en adgangstoken til efterfølgende kald.

Request

POST /external/v1/auth HTTP/1.1
Host: <API_HOST>
Content-Type: application/json; charset=utf-8

{
"clientID": "<CLIENT_ID>",
"clientSecret": "<CLIENT_SECRET>"
}

Response

Returnerer en token, som skal bruges i senere requests.

Eksempel:

{
"data": {
"accessToken": "eyJhbGciOi[...]yFKUIW39LVlKPUXJhQz4"
}
}

Vigtigt: Token skal sendes råt i Authorization headeren (uden Bearer prefix).

Eksempel:

Authorization: <TOKEN>

Find patient ud fra CPR

Finder patient ud fra CPR-nummer. Patient ID returneres.

Request

GET /external/v1/cprLookup?cprNumber=<CPR_NUMBER> HTTP/1.1
Host: <API_HOST>
Authorization: <TOKEN>

Response

  • 404 Not Found hvis patienten ikke findes
  • 200 OK med JSON, der indeholder patientID, hvis patienten findes:
{
"data": {
"patientID": "01938c43-d9f9-7791-9eba-9681b8c8bec5"
}
}

Opret patient

Opretter en patient, hvis CPR lookup ikke finder en eksisterende patient.

Felter:

FeltTypePåkrævetNoter
nationalIDstringJa
nationalIDTypestringJaValue: "CPR"
address1stringNej
address2stringNej
birthDatestring <date>NejISO8601, fx 2020-01-30
citystringNej
countrystringNejDefault: "DK". ISO-3166-1 alpha-2 country code.
emailstringNej
genderstringNejEnum: "Male", "Female"
givenNamestringNej
middleNamestringNej
phoneNumberstringNej
postCodestringNej
surNamestringNej

Request

POST /external/v1/patients HTTP/1.1
Host: <API_HOST>
Authorization: <TOKEN>
Content-Type: application/json; charset=utf-8

{
"nationalID": "<CPR_NUMBER>", // cpr nummer uden bindestreger
"nationalIDType": "CPR" // "CPR" | "ECPR"
}

Response

Såfremt patienten oprettes successfuldt, returneres HTTP 200 OK:

{
"data": {
"patientID": "<PATIENT_ID>" // ID på den oprettede patient
}
}

Vena indsætter automatisk navn m.m. fra CPR-registeret på patienten.

Hvis der allerede findes en patient med det angivne CPR/eCPR nummer, returneres HTTP 409 Conflict, og et ID på den allerede eksisterende patient:

{
"data": {
"patientID": "<PATIENT ID>" // id på allerede eksisterende patient
}
}

Response

200 OK med JSON, der indeholder et fileID.

Opret journalnotat

Opretter et journalnotat på patienten, eventuelt med vedhæftede filer.

Journalnotat-tekster i Vena er altid HTML. Følgende tags kan anvendes: <p>, <ul>, <ol>, <strong>, <u>, <i>.

Journalnotatet oprettes som systemnotat med forfatteren "system".

Request

POST /external/v1/patients/<PATIENT_ID>/journalEntries HTTP/1.1
Host: <API_HOST>
Authorization: <TOKEN>
Content-Type: application/json; charset=utf-8

{
"entry": "<p>Journaltekst</p>",
"fileIDs": [
"<FILE_ID>"
]
}

Response

Journalnotatet oprettes med den vedhæftede fil.

Upload fil

Uploader en fil, som efterfølgende kan vedhæftes et journalnotat.

Filens indhold indsættes i data-attributten base64 encoded.

FeltTypePåkrævetNoter
patientIDstringJa
mimetypestringJa
datastringJaEksempel: "text/plain" eller "application/pdf"
filenamestringJaNavn på filen.

Request

POST /external/v1/files HTTP/1.1
Host: <API_HOST>
Authorization: <TOKEN>
Content-Type: application/json; charset=utf-8

{
"mimetype": "text/plain",
"data": "<BASE64_FILE_CONTENT>",
"filename": "<FILENAME>",
"patientID": "<PATIENT_ID>"
}