Advertisement
Guest User

Untitled

a guest
Dec 20th, 2014
310
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. var baseUrl = 'https://rest.ehrscape.com/rest/v1';
  3. var queryUrl = baseUrl + '/query';
  4.  
  5. var username = "ois.seminar";
  6. var password = "ois4fri";
  7.  
  8. function getSessionId() {
  9.     var response = $.ajax({
  10.         type: "POST",
  11.         url: baseUrl + "/session?username=" + encodeURIComponent(username) +
  12.                 "&password=" + encodeURIComponent(password),
  13.         async: false
  14.     });
  15.     return response.responseJSON.sessionId;
  16. }
  17.  
  18.  
  19. function kreirajEHRzaBolnika() {
  20.     sessionId = getSessionId();
  21.  
  22.     var ime = $("#kreirajIme").val();
  23.     var priimek = $("#kreirajPriimek").val();
  24.     var datumRojstva = $("#kreirajDatumRojstva").val();
  25.  
  26.     if (!ime || !priimek || !datumRojstva || ime.trim().length == 0 || priimek.trim().length == 0 || datumRojstva.trim().length == 0) {
  27.         $("#kreirajSporocilo").html("<span class='obvestilo label label-warning fade-in'>Prosim vnesite zahtevane podatke!</span>");
  28.     } else {
  29.         $.ajaxSetup({
  30.             headers: {"Ehr-Session": sessionId}
  31.         });
  32.         $.ajax({
  33.             url: baseUrl + "/ehr",
  34.             type: 'POST',
  35.             success: function (data) {
  36.                 var ehrId = data.ehrId;
  37.                 var partyData = {
  38.                     firstNames: ime,
  39.                     lastNames: priimek,
  40.                     dateOfBirth: datumRojstva,
  41.                     partyAdditionalInfo: [{key: "ehrId", value: ehrId}]
  42.                 };
  43.                 $.ajax({
  44.                     url: baseUrl + "/demographics/party",
  45.                     type: 'POST',
  46.                     contentType: 'application/json',
  47.                     data: JSON.stringify(partyData),
  48.                     success: function (party) {
  49.                         if (party.action == 'CREATE') {
  50.                             $("#kreirajSporocilo").html("<span class='obvestilo label label-success fade-in'>Uspešno kreiran EHR '" + ehrId + "'.</span>");
  51.                             console.log("Uspešno kreiran EHR '" + ehrId + "'.");
  52.                             $("#preberiEHRid").val(ehrId);
  53.                         }
  54.                     },
  55.                     error: function(err) {
  56.                         $("#kreirajSporocilo").html("<span class='obvestilo label label-danger fade-in'>Napaka '" + JSON.parse(err.responseText).userMessage + "'!");
  57.                         console.log(JSON.parse(err.responseText).userMessage);
  58.                     }
  59.                 });
  60.             }
  61.         });
  62.     }
  63. }
  64.  
  65.  
  66. function preberiEHRodBolnika() {
  67.     sessionId = getSessionId();
  68.  
  69.     var ehrId = $("#preberiEHRid").val();
  70.  
  71.     if (!ehrId || ehrId.trim().length == 0) {
  72.         $("#preberiSporocilo").html("<span class='obvestilo label label-warning fade-in'>Prosim vnesite zahtevan podatek!");
  73.     } else {
  74.         $.ajax({
  75.             url: baseUrl + "/demographics/ehr/" + ehrId + "/party",
  76.             type: 'GET',
  77.             headers: {"Ehr-Session": sessionId},
  78.             success: function (data) {
  79.                 var party = data.party;
  80.                 $("#preberiSporocilo").html("<span class='obvestilo label label-success fade-in'>Prebivalec '" + party.firstNames + " " + party.lastNames + "', ki se je rodil '" + party.dateOfBirth + "'.</span>");
  81.                 console.log("Prebivalec '" + party.firstNames + " " + party.lastNames + "', ki se je rodil '" + party.dateOfBirth + "'.");
  82.             },
  83.             error: function(err) {
  84.                 $("#preberiSporocilo").html("<span class='obvestilo label label-danger fade-in'>Napaka '" + JSON.parse(err.responseText).userMessage + "'!");
  85.                 console.log(JSON.parse(err.responseText).userMessage);
  86.             }
  87.         });
  88.     }  
  89. }
  90.  
  91.  
  92. function dodajMeritveVitalnihZnakov() {
  93.     sessionId = getSessionId();
  94.  
  95.     var ehrId = $("#dodajVitalnoEHR").val();
  96.     var datumInUra = $("#dodajVitalnoDatumInUra").val();
  97.     var telesnaVisina = $("#dodajVitalnoTelesnaVisina").val();
  98.     var telesnaTeza = $("#dodajVitalnoTelesnaTeza").val();
  99.     //var telesnaTemperatura = $("#dodajVitalnoTelesnaTemperatura").val();
  100.     var sistolicniKrvniTlak = $("#dodajVitalnoKrvniTlakSistolicni").val();
  101.     var diastolicniKrvniTlak = $("#dodajVitalnoKrvniTlakDiastolicni").val();
  102.     //var nasicenostKrviSKisikom = $("#dodajVitalnoNasicenostKrviSKisikom").val();
  103.     var merilec = $("#dodajVitalnoMerilec").val();
  104.  
  105.     if (!ehrId || ehrId.trim().length == 0) {
  106.         $("#dodajMeritveVitalnihZnakovSporocilo").html("<span class='obvestilo label label-warning fade-in'>Prosim vnesite zahtevane podatke!</span>");
  107.     } else {
  108.         $.ajaxSetup({
  109.             headers: {"Ehr-Session": sessionId}
  110.         });
  111.         var podatki = {
  112.             // Preview Structure: https://rest.ehrscape.com/rest/v1/template/Vital%20Signs/example
  113.             "ctx/language": "en",
  114.             "ctx/territory": "SI",
  115.             "ctx/time": datumInUra,
  116.             "vital_signs/height_length/any_event/body_height_length": telesnaVisina,
  117.             "vital_signs/body_weight/any_event/body_weight": telesnaTeza,
  118.             "vital_signs/body_temperature/any_event/temperature|magnitude": 0,
  119.             "vital_signs/body_temperature/any_event/temperature|unit": "°C",
  120.             "vital_signs/blood_pressure/any_event/systolic": sistolicniKrvniTlak,
  121.             "vital_signs/blood_pressure/any_event/diastolic": diastolicniKrvniTlak,
  122.             "vital_signs/indirect_oximetry:0/spo2|numerator": 0,
  123.         };
  124.         var parametriZahteve = {
  125.             "ehrId": ehrId,
  126.             templateId: 'Vital Signs',
  127.             format: 'FLAT',
  128.             committer: merilec
  129.         };
  130.         $.ajax({
  131.             url: baseUrl + "/composition?" + $.param(parametriZahteve),
  132.             type: 'POST',
  133.             contentType: 'application/json',
  134.             data: JSON.stringify(podatki),
  135.             success: function (res) {
  136.                 console.log(res.meta.href);
  137.                 $("#dodajMeritveVitalnihZnakovSporocilo").html("<span class='obvestilo label label-success fade-in'>" + res.meta.href + ".</span>");
  138.             },
  139.             error: function(err) {
  140.                 $("#dodajMeritveVitalnihZnakovSporocilo").html("<span class='obvestilo label label-danger fade-in'>Napaka '" + JSON.parse(err.responseText).userMessage + "'!");
  141.                 console.log(JSON.parse(err.responseText).userMessage);
  142.             }
  143.         });
  144.     }
  145. }
  146. function generator(){
  147.     $("#dodajVitalnoDatumInUra").val(stevilka(1994, 2014) +"-"+ stevilka2(1,12)+"-"+stevilka2(1,28)+"T"+stevilka2(0,23)+":"+stevilka2(0,59));
  148.     $("#dodajVitalnoTelesnaVisina").val(stevilka(130, 215));
  149.     $("#dodajVitalnoTelesnaTeza").val(stevilka(40,180));
  150.     $("#dodajVitalnoKrvniTlakSistolicni").val(stevilka(50, 220));
  151.     $("#dodajVitalnoKrvniTlakDiastolicni").val(stevilka(40, 120));
  152.     $("#dodajVitalnoMerilec").val('Marija');
  153. }
  154.  
  155. function stevilka(min, max){
  156.     var st= Math.floor(Math.random()* (max - min + 1)) + min;
  157.     return st;
  158. }
  159.  
  160. function stevilka2(min, max){
  161.     var st= Math.floor(Math.random()* (max - min + 1)) + min;
  162.     if (st < 10){
  163.         st= "0"+st;
  164.     }
  165.     return st;
  166. }
  167.  
  168.  
  169. function preberiMeritveVitalnihZnakov() {
  170.     sessionId = getSessionId();
  171.     var ehrId = $("#meritveVitalnihZnakovEHRid").val();
  172.     $("#rezultatMeritveVitalnihZnakov").empty();
  173.             var AQL =   "select " +
  174.                             "a_a/data[at0002]/events[at0003]/time/value as cas, " +
  175.                             "a_b/data[at0001]/events[at0006]/data[at0003]/items[at0005]/value/magnitude as tlak_d, " +                                        
  176.                             "a_b/data[at0001]/events[at0006]/data[at0003]/items[at0004]/value/magnitude as tlak_s, " +
  177.                             "a_c/data[at0001]/events[at0002]/data[at0003]/items[at0004]/value/magnitude as visina, " +
  178.                             "a_d/data[at0002]/events[at0003]/data[at0001]/items[at0004]/value/magnitude as teza " +
  179.                         "from EHR e[ehr_id/value='"+ehrId+"']" +
  180.                         "contains COMPOSITION a " +
  181.                         "contains ( " +
  182.                                 "OBSERVATION a_d[openEHR-EHR-OBSERVATION.body_weight.v1] and " +
  183.                                 "OBSERVATION a_c[openEHR-EHR-OBSERVATION.height.v1] and " +
  184.                                 "OBSERVATION a_a[openEHR-EHR-OBSERVATION.body_temperature.v1] and " +
  185.                                 "OBSERVATION a_b[openEHR-EHR-OBSERVATION.blood_pressure.v1]) " +              
  186.                         "offset 0 limit 5";
  187.             $.ajax({
  188.                         url: baseUrl + "/query?" + $.param({"aql": AQL}),
  189.                         type: 'GET',
  190.                         headers: {"Ehr-Session": sessionId},
  191.                         success: function (res) {
  192.                             var results = "<table class='table table-striped table-hover'><tr><th>Datum in ura</th></tr>";
  193.                             if (res) {
  194.                                 var rows = res.resultSet;
  195.                                 for (var i in rows) {
  196.                                     //results += "<tr><td class='klikablien-datum'>" + rows[i].cas + "</td>";
  197.                                  //   results += "<tr><td><button type='button' class='klikabilen' onclick='preberiMeritveVitalnihZnakov2(this)' value='"+rows[i].cas+"'>"+ rows[i].cas +"</button></td></tr>"
  198.                                     results += "<tr><td><button type='button' class='klikabilen' onclick='preberiMeritveVitalnihZnakov2(this.value)' value='"+rows[i].cas+"'>"+ rows[i].cas +"</button></td></tr>"
  199.  
  200.                                    
  201.                                 }
  202.                                 results += "</table>";
  203.                                 $("#rezultatMeritveVitalnihZnakov").append(results);
  204.                                
  205.                             } else {
  206.                                 $("#preberiMeritveVitalnihZnakovSporocilo").html("<span class='obvestilo label label-warning fade-in'>Ni podatkov!</span>");
  207.                             }
  208.  
  209.                         },
  210.                         error: function() {
  211.                             $("#preberiMeritveVitalnihZnakovSporocilo").html("<span class='obvestilo label label-danger fade-in'>Napaka '" + JSON.parse(err.responseText).userMessage + "'!");
  212.                             console.log(JSON.parse(err.responseText).userMessage);
  213.                         }
  214.                     });
  215.        
  216. }
  217. function preberiMeritveVitalnihZnakov2(a){
  218.     sessionId = getSessionId();
  219.    
  220.     var ehrId = $("#meritveVitalnihZnakovEHRid").val();
  221.    
  222.     $("#graf").empty();
  223.    
  224.             var AQL =   "select " +
  225.                             "a_a/data[at0002]/events[at0003]/time/value as cas, " +
  226.                             "a_b/data[at0001]/events[at0006]/data[at0003]/items[at0005]/value/magnitude as tlak_d, " +                                        
  227.                             "a_b/data[at0001]/events[at0006]/data[at0003]/items[at0004]/value/magnitude as tlak_s, " +
  228.                             "a_c/data[at0001]/events[at0002]/data[at0003]/items[at0004]/value/magnitude as visina, " +
  229.                             "a_d/data[at0002]/events[at0003]/data[at0001]/items[at0004]/value/magnitude as teza " +
  230.                         "from EHR e[ehr_id/value='"+ehrId+"']" +
  231.                         "contains COMPOSITION a " +
  232.                         "contains ( " +
  233.                                 "OBSERVATION a_d[openEHR-EHR-OBSERVATION.body_weight.v1] and " +
  234.                                 "OBSERVATION a_c[openEHR-EHR-OBSERVATION.height.v1] and " +
  235.                                 "OBSERVATION a_a[openEHR-EHR-OBSERVATION.body_temperature.v1] and " +
  236.                                 "OBSERVATION a_b[openEHR-EHR-OBSERVATION.blood_pressure.v1]) " +              
  237.                         "offset 0 limit 5";
  238.             $.ajax({
  239.                         url: baseUrl + "/query?" + $.param({"aql": AQL}),
  240.                         type: 'GET',
  241.                         headers: {"Ehr-Session": sessionId},
  242.                         success: function (res) {
  243.                             var results = "<table class='table table-striped table-hover'><tr><th>Graf</th></tr>";
  244.                             if (res) {
  245.                                 var rows = res.resultSet;
  246.                                 for (var i in rows) {
  247.                                    
  248.                                     if (rows[i].cas == a){
  249.                                        
  250.                                         var visina = rows[i].visina;
  251.                                         var teza = rows[i].teza;
  252.                                         var tlak_s = rows[i].tlak_s;
  253.                                         var tlak_d = rows[i].tlak_d;
  254.                                         var bmi = rows[i].teza /((rows[i].visina/100)*(rows[i].visina/100));
  255.                                         var tlakS = rows[i].tlak_s+rows[i].tlak_d;
  256.                                         var x=79;
  257.                                         var y=0;
  258.                                         var z=0;
  259.                                         if (bmi >20 && bmi<25){
  260.                                             y = 79;
  261.                                         } else if(bmi <20 && bmi>15 ) {
  262.                                             y = x + 3 ;
  263.                                         }   else if(bmi <15 ) {
  264.                                             y = x - 3 ;
  265.                                         }   else if(bmi > 30 ) {
  266.                                             y = x - 5 ;
  267.                                         }   else if(bmi <30 && bmi>25 ) {
  268.                                             y = x - 3 ;
  269.                                         }
  270.                                         if (tlakS<170){
  271.                                             z = y - 5;
  272.                                         } else if (tlakS>170 && tlakS<185){
  273.                                             z= y - 1;
  274.                                         }   else if (tlakS<190 && tlakS>185){
  275.                                             z= y;
  276.                                         } else if (tlakS>190 && tlakS<200){
  277.                                             z= y - 1;
  278.                                         } else if (tlakS>200 && tlakS<230){
  279.                                             z= y - 2;
  280.                                         } else if (tlakS>230 && tlakS<250){
  281.                                             z= y - 3;
  282.                                         } else if (tlakS>250 && tlakS<300){
  283.                                             z= y - 4;
  284.                                         } else if (tlakS>300 && tlakS<340){
  285.                                             z= y - 10;
  286.                                         }
  287.                                    
  288.                                     }
  289.                                    
  290.                                     ///graffff
  291.                                 }
  292.                                 console.log(x+" "+y+" "+z);
  293.                                 results += "</table>";
  294.                                
  295.                                 graf(x, y, z);
  296.                                
  297.                             } else {
  298.                                 $("#preberiMeritveVitalnihZnakovSporocilo").html("<span class='obvestilo label label-warning fade-in'>Ni podatkov!</span>");
  299.                             }
  300.  
  301.                         },
  302.                         error: function() {
  303.                             $("#preberiMeritveVitalnihZnakovSporocilo").html("<span class='obvestilo label label-danger fade-in'>Napaka '" + JSON.parse(err.responseText).userMessage + "'!");
  304.                             console.log(JSON.parse(err.responseText).userMessage);
  305.                         }
  306.                     });
  307.        
  308. }
  309.  
  310. function graf(x, y, z){
  311.  
  312.     var w = 400;
  313.     var h = 300;
  314.     var padding = 30;
  315.    
  316.     //The data for our line
  317.     var lineData = [ { "x": 3,   "y": x},  { "x": 6,  "y": y}, { "x": 9,  "y": z}];
  318.    
  319.     var xScale = d3.scale.linear().domain([0, 12]).range([padding, w - padding]);
  320.     var yScale = d3.scale.linear().domain([60, 90]).range([h - padding, padding]);
  321.    
  322.     //The SVG Container
  323.     var svg = d3.select("#graf").append("svg").style("border", "1px solid red").style("background-color", "black").attr("width", w).attr("height", h);
  324.    
  325.     //Define and draw X and Y axes
  326.     var xAxis = d3.svg.axis()
  327.         .scale(xScale)
  328.         .orient("bottom")
  329.         .ticks(10);
  330.    
  331.     var yAxis = d3.svg.axis()
  332.         .scale(yScale)
  333.         .orient("left")
  334.         .ticks(10);
  335.    
  336.     /*svg.append("g")
  337.         .attr("class", "axis")
  338.         .attr("transform", "translate(0," + (h - padding) + ")")
  339.         .style("fill","red")
  340.         .call(xAxis);*/
  341.    
  342.     svg.append("g")
  343.         .attr("class", "axis")
  344.         .attr("transform", "translate(" + padding + ",0)")
  345.         .style("fill","red")
  346.         .call(yAxis);
  347.    
  348.     svg.append("text")
  349.         .attr("transform", "rotate(-90)")
  350.         .attr("y", 40)
  351.         .attr("x",60 - (h / 2))
  352.         .attr("dy", "1em")
  353.         .style("text-anchor", "start")
  354.         .style("fill","red")
  355.         .text("Leto");
  356.      
  357.      var lineFunction = d3.svg.line()
  358.                               .x(function(d) { return xScale(d.x); })
  359.                               .y(function(d) { return yScale(d.y); })
  360.                              .interpolate("linear");
  361.    
  362.    
  363.    
  364.    
  365.     var lineGraph = svg.append("path")
  366.                                 .attr("d", lineFunction(lineData))
  367.                                .attr("stroke", "red")
  368.                                 .attr("stroke-width", 2)
  369.                                 .attr("fill", "none");
  370.    
  371.    
  372.      var circles = svg.selectAll("circle").data(lineData).enter().append("circle");
  373.      var circleAttributes =
  374.      circles.attr("cx", function(d) { return xScale(d.x); }).attr("cy", function(d) { return yScale(d.y); }).attr("r", function (d) { return 10; }).style("fill", function(d,i)
  375.         {
  376.             if (i == 0) return "red";
  377.             else if (i == 1) return "green";
  378.             else if (i == 2) return "orange";
  379.         });
  380.    
  381.      svg.append("text")
  382.      .attr("x",xScale(2))
  383.      .attr("y",yScale(88))
  384.      .style("fill","red")
  385.      .style("text-anchor", "start")
  386.      .text("Povprečna starost");
  387.    
  388.      svg.append("text")
  389.      .attr("x",xScale(2))
  390.      .attr("y",yScale(86))
  391.      .style("fill","green")
  392.      .style("text-anchor", "start")
  393.      .text("Indeks telesne mase");
  394.    
  395.      svg.append("text")
  396.      .attr("x",xScale(2))
  397.      .attr("y",yScale(84))
  398.      .style("fill","orange")
  399.      .style("text-anchor", "start")
  400.          .text("Pritisk");
  401.  
  402. }
  403.  
  404.  
  405. $(document).ready(function() {
  406.     $('#preberiObstojeciEHR').change(function() {
  407.         $("#preberiSporocilo").html("");
  408.         $("#preberiEHRid").val($(this).val());
  409.     });
  410.     $('#preberiPredlogoBolnika').change(function() {
  411.         $("#kreirajSporocilo").html("");
  412.         var podatki = $(this).val().split(",");
  413.         $("#kreirajIme").val(podatki[0]);
  414.         $("#kreirajPriimek").val(podatki[1]);
  415.         $("#kreirajDatumRojstva").val(podatki[2]);
  416.     });
  417.     $('#preberiObstojeciVitalniZnak').change(function() {
  418.         $("#dodajMeritveVitalnihZnakovSporocilo").html("");
  419.         var podatki = $(this).val().split("|");
  420.         $("#dodajVitalnoEHR").val(podatki[0]);
  421.         $("#dodajVitalnoDatumInUra").val(podatki[1]);
  422.         $("#dodajVitalnoTelesnaVisina").val(podatki[2]);
  423.         $("#dodajVitalnoTelesnaTeza").val(podatki[3]);
  424.         //$("#dodajVitalnoTelesnaTemperatura").val(podatki[4]);
  425.         $("#dodajVitalnoKrvniTlakSistolicni").val(podatki[4]);
  426.         $("#dodajVitalnoKrvniTlakDiastolicni").val(podatki[5]);
  427.         //$("#dodajVitalnoNasicenostKrviSKisikom").val(podatki[7]);
  428.         //$("#dodajIndeksTelesneMase").val(podatki[8]);
  429.         $("#dodajVitalnoMerilec").val(podatki[6]);
  430.     });
  431.     $('#preberiEhrIdZaVitalneZnake').change(function() {
  432.         $("#preberiMeritveVitalnihZnakovSporocilo").html("");
  433.         $("#rezultatMeritveVitalnihZnakov").html("");
  434.         $("#meritveVitalnihZnakovEHRid").val($(this).val());
  435.        
  436.         // Skrij graf
  437.         $("#graf").empty();
  438.     });
  439.    
  440.     /*$(".klikabilen").click(function() {
  441.         preberiMeritveVitalnihZnakov2($(this).html());
  442.     });*/
  443.  
  444. });
  445.  
  446. //*[@id="tabele"]/table[1]/tbody/tr/td/div[2]/table/tbody/tr[14]/td[6]/b zenske 82,9 let
  447. //*[@id="tabele"]/table[1]/tbody/tr/td/div[2]/table/tbody/tr[15]/td[6]/b moski  76,6 let
  448. //#tabele > table:nth-child(1) > tbody > tr > td > div:nth-child(2) > table > tbody > tr:nth-child(15) > td:nth-child(6) > b css moski
  449. //#tabele > table:nth-child(1) > tbody > tr > td > div:nth-child(2) > table > tbody > tr:nth-child(14) > td:nth-child(6) > b css zenske
  450. //http://www.stat.si/novica_prikazi.aspx?id=4815
  451.  
  452.  
  453.  
  454. //function zunanji_vir1(){
  455. //  var a;
  456. //  a = 'select * from html where url="http://www.stat.si/novica_prikazi.aspx?id=4815" and compat="html5" and xpath="*//td/b"'; //mi najde vse vrednosti treba sam 12, 13
  457. //  console.log(a);
  458. //}
  459. //luka krhlikar
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement