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>"
}