var baza = 'anzehocevar';
var baseUrl = 'https://teaching.lavbic.net/api/OIS/baza/' + baza + '/podatki/';
var pacienti = {};
/**
* Generator podatkov za novega pacienta, ki bo uporabljal aplikacijo. Pri
* generiranju podatkov je potrebno najprej kreirati novega pacienta z
* določenimi osebnimi podatki (ime, priimek in datum rojstva) ter za njega
* shraniti nekaj podatkov o vitalnih znakih.
* @param stPacienta zaporedna številka pacienta (1, 2 ali 3)
* @return ehrId generiranega pacienta
*/
function generirajPodatke(stPacienta) {
ehrID = "";
// TODO: Potrebno implementirati
return ehrID;
}
// TODO: Tukaj implementirate funkcionalnost, ki jo podpira vaša aplikacija
/**
* Generiranje enoličnega identifikatorja, ki ga uporabimo za
* EHR zapis pacienta.
*/
function generirajID() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
});
}
/**
* Kreiraj nov EHR zapis za pacienta in dodaj osnovne demografske podatke
* (ime, priimek in datum rojstva). V primeru uspešne akcije izpiši sporočilo
* s pridobljenim EHR ID, sicer izpiši napako.
*/
function kreirajEHRzaBolnika() {
var ime = $("#kreirajIme").val();
var priimek = $("#kreirajPriimek").val();
var datumRojstva = $("#kreirajDatumRojstva").val();
if (!ime || !priimek || !datumRojstva || ime.trim().length == 0 ||
priimek.trim().length == 0 || datumRojstva.trim().length == 0) {
$("#kreirajSporocilo").html("Prosim vnesite zahtevane podatke!");
} else {
var ehrID = generirajID();
var podatki = {
ime: ime,
priimek: priimek,
datumRojstva: datumRojstva
};
$.ajax({
url: baseUrl + "azuriraj?kljuc=" + ehrID,
type: "PUT",
contentType: "application/json",
data: JSON.stringify(podatki),
success: function (data) {
$("#kreirajSporocilo").html("Uspešno kreiran EHR '" +
ehrID + "'.");
$("#preberiEHRid").val(ehrID);
$("#kreirajIme").val("");
$("#kreirajPriimek").val("");
$("#kreirajDatumRojstva").val("");
},
error: function (err) {
$("#kreirajSporocilo").html("Napaka!");
}
});
}
}
/**
* Za podan EHR ID preberi demografske podrobnosti pacienta in izpiši sporočilo
* s pridobljenimi podatki (ime, priimek in datum rojstva).
*/
function preberiEHRodBolnika() {
var ehrID = $("#preberiEHRid").val();
if (!ehrID || ehrID.trim().length == 0) {
$("#preberiSporocilo").html("Prosim vnesite zahtevan podatek!");
} else {
$.ajax({
url: baseUrl + "vrni/" + ehrID,
type: "GET",
success: function (podatki) {
$("#preberiSporocilo").html("Bolnik '" + podatki.ime + " " +
podatki.priimek + "', ki se je rodil '" + podatki.datumRojstva +
"'.");
},
error: function (err) {
$("#preberiSporocilo").html("Napaka '" +
JSON.parse(err.responseText).opis + "'!");
}
});
}
}
function izpisiEHRBolnikov() {
$.ajax({
url: baseUrl + "vrni/vsi",
type: "GET",
success: function (podatki) {
/*
$("#pacient").html("podatki '" + podatki + "'!");
console.log(podatki);
*/
//console.log(podatki);
let i = 0;
$("#seznamPacientov").append("");
//$("#seznamPacientov").html("");
},
error: function (err) {
$("#seznamPacientov").html("Napaka '" +
JSON.parse(err.responseText).opis + "'!");
}
});
}
/**
* Za dodajanje vitalnih znakov pacienta je pripravljena kompozicija, ki
* vključuje množico meritev vitalnih znakov (EHR ID, datum in ura,
* telesna višina, telesna teža, sistolični in diastolični krvni tlak,
* nasičenost krvi s kisikom in merilec).
*/
function dodajMeritveVitalnihZnakov() {
var ehrID = $("#dodajVitalnoEHR").val();
var datumInUra = $("#dodajVitalnoDatumInUra").val();
var telesnaVisina = $("#dodajVitalnoTelesnaVisina").val();
var telesnaTeza = $("#dodajVitalnoTelesnaTeza").val();
var telesnaTemperatura = $("#dodajVitalnoTelesnaTemperatura").val();
var sistolicniKrvniTlak = $("#dodajVitalnoKrvniTlakSistolicni").val();
var diastolicniKrvniTlak = $("#dodajVitalnoKrvniTlakDiastolicni").val();
var nasicenostKrviSKisikom = $("#dodajVitalnoNasicenostKrviSKisikom").val();
if (!ehrID || ehrID.trim().length == 0 ||
!datumInUra || datumInUra.trim().length == 0 ||
!telesnaVisina || telesnaVisina.trim().length == 0 ||
!telesnaTeza || telesnaTeza.trim().length == 0 ||
!telesnaTemperatura || telesnaTemperatura.trim().length == 0 ||
!sistolicniKrvniTlak || sistolicniKrvniTlak.trim().length == 0 ||
!nasicenostKrviSKisikom || nasicenostKrviSKisikom.trim().length == 0
) {
$("#dodajMeritveVitalnihZnakovSporocilo").html("Prosim vnesite zahtevane podatke!");
} else {
var podatki = {
datumInUra: datumInUra,
telesnaVisina: parseFloat(telesnaVisina),
telesnaTeza: parseFloat(telesnaTeza),
telesnaTemperatura: parseFloat(telesnaTemperatura),
sistolicniKrvniTlak: parseFloat(sistolicniKrvniTlak),
diastolicniKrvniTlak: parseFloat(diastolicniKrvniTlak),
nasicenostKrviSKisikom: parseFloat(nasicenostKrviSKisikom)
};
$.ajax({
url: baseUrl + "azuriraj?kljuc=" + ehrID + "|meritve" + "&elementTabele=true",
type: 'PUT',
contentType: 'application/json',
data: JSON.stringify(podatki),
success: function (odgovor) {
$("#dodajMeritveVitalnihZnakovSporocilo").html(
"" +
"Meritve za bolnika " + ehrID + " uspešno dodane!" + ".");
},
error: function (err) {
$("#dodajMeritveVitalnihZnakovSporocilo").html(
"Napaka!");
}
});
}
}
/**
* Pridobivanje vseh zgodovinskih podatkov meritev izbranih vitalnih znakov
* (telesna temperatura in telesna teža).
*/
function preberiMeritveVitalnihZnakov() {
var ehrID = $("#meritveVitalnihZnakovEHRid").val();
var tip = $("#preberiTipZaVitalneZnake").val();
if (!ehrID || ehrID.trim().length == 0 || !tip || tip.trim().length == 0) {
$("#preberiMeritveVitalnihZnakovSporocilo").html("Prosim vnesite zahtevan podatek!");
} else {
$.ajax({
url: baseUrl + "vrni/" + ehrID + "|" + "meritve",
type: 'GET',
success: function (podatki) {
podatki = podatki.filter(podatek => {
if (tip == "Telesna temperatura")
return podatek.datumInUra && podatek.telesnaTemperatura;
else if (tip == "Telesna teža")
return podatek.datumInUra && podatek.telesnaTeza;
else
return false;
});
if (podatki.length > 0) {
var prikaz = "
";
$("#rezultatMeritveVitalnihZnakov").html(prikaz);
} else {
$("#preberiMeritveVitalnihZnakovSporocilo").html(
"" +
"Ni podatkov!");
}
$("#preberiMeritveVitalnihZnakovSporocilo").html("");
},
error: function (err) {
$("#preberiMeritveVitalnihZnakovSporocilo").html(
"Napaka '" +
JSON.parse(err.responseText).opis + "'!");
}
});
}
}
$(document).ready(function () {
/**
* Napolni testne vrednosti (ime, priimek in datum rojstva) pri kreiranju
* EHR zapisa za novega bolnika, ko uporabnik izbere vrednost iz
* padajočega menuja (npr. Pujsa Pepa).
*/
console.log("HALO?");
console.log($('#preberiPredlogoBolnika'));
$('#preberiPredlogoBolnika').change(function () {
$("#kreirajSporocilo").html("");
var podatki = $(this).val().split(",");
$("#kreirajIme").val(podatki[0]);
$("#kreirajPriimek").val(podatki[1]);
$("#kreirajDatumRojstva").val(podatki[2]);
});
/**
* Napolni testni EHR ID pri prebiranju EHR zapisa obstoječega bolnika,
* ko uporabnik izbere vrednost iz padajočega menuja
* (npr. Dejan Lavbič, Pujsa Pepa, Ata Smrk)
*/
$('#preberiObstojeciEHR').change(function () {
$("#preberiSporocilo").html("");
$("#preberiEHRid").val($(this).val());
});
/**
* Napolni testne vrednosti (EHR ID, datum in ura, telesna višina,
* telesna teža, telesna temperatura, sistolični in diastolični krvni tlak,
* nasičenost krvi s kisikom in merilec) pri vnosu meritve vitalnih znakov
* bolnika, ko uporabnik izbere vrednosti iz padajočega menuja (npr. Ata Smrk)
*/
$('#preberiObstojeciVitalniZnak').change(function () {
console.log("halo");
$("#dodajMeritveVitalnihZnakovSporocilo").html("");
var podatki = $(this).val().split("|");
$("#dodajVitalnoEHR").val(podatki[0]);
$("#dodajVitalnoDatumInUra").val(podatki[1]);
$("#dodajVitalnoTelesnaVisina").val(podatki[2]);
$("#dodajVitalnoTelesnaTeza").val(podatki[3]);
$("#dodajVitalnoTelesnaTemperatura").val(podatki[4]);
$("#dodajVitalnoKrvniTlakSistolicni").val(podatki[5]);
$("#dodajVitalnoKrvniTlakDiastolicni").val(podatki[6]);
$("#dodajVitalnoNasicenostKrviSKisikom").val(podatki[7]);
});
/**
* Ob spremembi tipa podatkov zahtevaj podatke s strežnika.
*/
$('#preberiTipZaVitalneZnake').change(function () {
preberiMeritveVitalnihZnakov();
});
/**
* Napolni testni EHR ID pri pregledu meritev vitalnih znakov obstoječega
* bolnika, ko uporabnik izbere vrednost iz padajočega menuja
* (npr. Ata Smrk, Pujsa Pepa)
*/
$('#preberiEhrIdZaVitalneZnake').change(function () {
$("#preberiMeritveVitalnihZnakovSporocilo").html("");
$("#rezultatMeritveVitalnihZnakov").html("");
$("#meritveVitalnihZnakovEHRid").val($(this).val());
});
});